Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 04:06 30.06.24 
Компютри и Интернет
   >> Бази данни
*Кратък преглед

Страници по тази тема: 1 | 2 | >> (покажи всички)
Тема Vyzmojen li e takyv SQL izrazнови  
АвторBruta (Нерегистриран)
Публикувано14.09.02 17:25



tozi vypros shte e dylgichuk, izvinqvam se za koeto, no iskam da obqsnq podrobno za kakvo stava duma.
Znachi predstavete si edna prosta tablica koqto ima 2 poleta. Ednoto ot tezi dve poleta e string koito shte se povtarq mnogo pyti. stava eto tova:

|---------|
|pole1 | pole2|
|---------|
|value1| val1 |
|value2| val1 |
|value3| val1 |
|---------|

Vmesto da zapisvam edni i syshti stoinosti mnogo pyti si syzdavam oshte edna tablica koqto da mi sydyrja samo tozi string i nqkakyv identifikator za nego. Poluchava se:

table1
|---------|
|pole1 | pole2|
|---------|
|value1| 1 |
|value2| 1 |
|value3| 1 |
|---------|

table2
|--------|
| id | value |
|--------|
| 1 | val1 |
|--------|

sled tova s edno sql izrazche kato:
select table1.pole1, table2.value as pole2 from table1, table2 where table2.id = table1.pole2;
si vzemam napravo stoinostite koito mi trqbvat, t.e.:
|----------|
|value1 | val1 |
|value2 | val1 |
|value3 | val1 |
|----------|
Za nqkoi koito se zanimava s bazi danni tova si e prosta rabota. Dotuk dobre. Ami ako imame slednoto polojenie:

table1
|---------|
|pole1 | pole2|
|---------|
|value1| 1,2,3|
|value2| 1,3 |
|value3| 1 |
|---------|

table2
|--------|
| id | value |
|--------|
| 1 | val1 |
| 2 | val2 |
| 3 | val3 |
|--------|

Moje bi se seshtate veche tochno za kakvo govorq. s sql izraz:
select table1.pole1, table2.value as pole2 from table1, table2 where table1.pole2 regexp table2.id;
rezultatyt koito mi se vryshta ima vida:

|----------|
|value1 | val1 |
|value1 | val2 |
|value1 | val3 |
|value2 | val1 |
|value2 | val3 |
|value3 | val3 |
|----------|

A na men tova ne mi vyrshi rabota.

vyprosyt mi e, ima li nqkakyv nachin i ako nqkoi moje da mi napishe primeren sql izraz s koito moje da stane taka che rezultatite da imat vida:

|------------------|
|value1 | val1, val2, val3 |
|value2 | val1, val3 |
|value3 | val3 |
|------------------|

Mnogo shte sum blagodaren na vseki koito moje da mi dade nqkakyv syvet, i se izvinqvam ako na nqkoi tova mu se e storilo prosto za tova dylgo opisanie.



Тема Re: Vyzmojen li e takyv SQL izrazнови [re: Bruta]  
Автор ..:: StanProg ::.. (Developer)
Публикувано15.09.02 16:10



Виж



__________________________________
Пътят към ада е осеян с добри намерения

Тема Re: Vyzmojen li e takyv SQL izraz [re: ..:: StanProg ::..]  
АвторBruta (Нерегистриран)
Публикувано15.09.02 16:53



Prochetoh tova koeto pisheshe tam, no ne mislq che to se otnasq kym moeto polojenie. Beginner iska samo da tyrsi izmejdu tezi 'x1,x5,x7,xn', a na men ne mi e problema v tova. priznavam che edva li e nai-dobroto reshenie tova koeto sym izbral, no...
Az iskam da izbegna povtarqneto na rezultatite za vsqka stoinost.



Тема Re: Vyzmojen li e takyv SQL izrazнови [re: Bruta]  
Автор NDeu (минаващ)
Публикувано15.09.02 19:05



Виждам, че имаш желание да четеш, но имам чувството, че знанията ти за БД за хаотични.
Не го приемай като упрек, никой не се е родил научен:) но е добре да прочетеш малко за НАЧАЛАТА
Ако ти е интересно вж.





Тема Re: Vyzmojen li e takyv SQL izrazнови [re: NDeu]  
АвторBruta (Нерегистриран)
Публикувано15.09.02 19:46



10x.
tochno nqkakvo podobno chetivo si tyrseh.



Тема Re: Vyzmojen li e takyv SQL izrazнови [re: Bruta]  
Авторsvircho (Нерегистриран)
Публикувано16.09.02 14:10



Здравей, според мен тук става въпрос за нормализиране на бази данни. Не можеш ей така да решиш да преместиш стойностите от една колона в отделна таблица макар че почти си уцелил едното правило. Базата ти трябва да е нормализирана, т.е. да са спазени поне първите 3 нормални форми(това са правилата за които говорих), а те общо са 5 + едно допълнение на 3-тата което се води отделно правило. Но като за начало са важни първите 3. Ето ти линк за да се запознаеш с тях:http://www.devshed.com/Server_Side/MySQL/Normal/Normal1/page1.html
Ти си се опитал да приложиш първата без да я знаеш, което не е малко. Изнесъл си повтарящата се информация в отделна таблица. Но не е правилно да я изнесеш по този начин, ти виждаш че нчкакъв стринг се повтаря и го слагаш в отделна таблица. Само че за един запис можеш да имаш няколко стринга които се повтарят и са отделени от запетаи. За да не обяснявам кое действие от кое правило е предизвикано(ти ще го видиш в статията) ще ти кажа как трябва да стане: Правиш си номенклатура със всички повтарящи се стрингове с 2 колони, sn_id, sn_name - където първата ти е уникален номер а втората името на стринга. И за да не останат в първтата ти таблица записи с номера, отделени от запетая, което е изключително неправилно, си правиш една нова таблица, която ще помни за дадено id от твоята първа таблица кои id-та от номенклатурата му отговарят. Ако приемем, че втората допълнителна таблица която ще направиш се казва mytable_link, а първата string_name, където началната ти таблица се казва mytable то тогава израза, който решава проблема ти е следния:
SELECT m.pole1,sn.name
FROM mytable m,mytable_link ml,string_name sn
WHERE ml.mytable_id=m.mytable_id
AND ml.sn_id=sn_id
Но така всеки стринг ще ти излезе на отделен ред а не всички стрингове отделени от запетаи за всеки запис от mytable както ти искаш.
Ако това не те устройва за display-а ти ще си направиш направиш функция, която за всеки един запис от mytable ще взима всички записи от mytable_link отговарящи на този от mytable и ще ги сложи в един масив например които ще ти го върне като стойност и ти съответно ще обходиш този масив и ще отпечатиш елементите му отделени от запетая и готово.
Сега в момента не мога да се сетя как само с SQL да се отпечатат на един ред и мисля, че не може без да претендирам че каквото мисля то е точно така.
Това е моят съвет!



Тема Re: Vyzmojen li e takyv SQL izrazнови [re: svircho]  
Автор salle (Един такъв)
Публикувано16.09.02 15:37







Тема Re: Vyzmojen li e takyv SQL izrazнови [re: svircho]  
Автор Bruta ()
Публикувано16.09.02 19:59



10x:-)
Izqsnih si nqkoi neshta



Тема Re: Vyzmojen li e takyv SQL izrazнови [re: svircho]  
Автор ..:: StanProg ::.. (Developer)
Публикувано17.09.02 10:27



"Базата ти трябва да е нормализирана, т.е. да са спазени поне първите 3 нормални форми"

Има доста случаи в които е по-добре да не е нормализирана, а по някога е невъзможно да е в която и да е нормална форма.

__________________________________
Пътят към ада е осеян с добри намерения


Тема Re: а не тука станахме на кълбо ;)нови [re: ..:: StanProg ::..]  
Автор salle (Един такъв)
Публикувано17.09.02 12:59



Адски ми е интересно как ще направиш SQL база данни която да не е дори Първа Нормална Форма

И ако успееш за какво точно ще ти послужи?




Страници по тази тема: 1 | 2 | >> (покажи всички)
*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.