| ALTER TABLE ADD UNIQUE - php težave | ||
|---|---|---|
|
werky
21. maj 2012 17:58:58
Pridružen od: 16. apr 2012 787 objav 796 168 26 |
#1
Evo,spet nova težava... Skratka, pri uvozu ponudb preko xml-ja na stran moram nekako določiti neko sprejemljivko ki ima unikatno vrednost, zato da ko ponovno uvozim xml, ki je medtem že spremenjen (dodane nove ponudbe, ni več pretečenih ponudb,nekatere so enake kot prej) ne uvozi istih ponudb še enkrat ker so potem podvojene...Probal sem z id ampak je ta v bazi že določen in ga ne morem spreminjati,nato sem dodal novo polje id_ponudbe, nastavil na VARCAHAR, in poizkusil ALTER TABLE ADD UNIQUE a sql vrže ven napako: ALTER TABLE MySQL je vrnil: Dokumentacija Ima kdo kakšno idejo/predlog kako rešiti ali to težavo,ali pa drugačno rešitev za to da pri uvozu ne bom vnašal istih ponudb, ali pa da jih vsaj prepišem. lp |
|
|
technolog
21. maj 2012 18:07:25
Pridružen od: 14. nov 2011 598 objav 768 300 22 |
#2
Ja, na eni tabeli maš lahko največ 64 indexov. Res ne vem kako ti je to ratalo, jst ne pridem nikol niti blizu temu limitu. Če hočeš več, lahko skompajlaš mysql iz sorsa, baje je datoteka sql/unireg.h, konstanta MAX_KEY. Dej na recimo ene 100, pač kokr rabiš. Z linuxom že 7 let. Pro web development.
|
|
|
werky
21. maj 2012 18:10:22
Pridružen od: 16. apr 2012 787 objav 796 168 26 |
#3
Hvala za odgovor...Samo še vedno ne razumem najbolje...Nisem namreč strokovnjak za baze (bolj totalni laik..) kaj pomeni "Ja, na eni tabeli maš lahko največ 64 indexov" hvala... Še to...kaj sploh predstavljajo indexi...da si bom bolje predstavljal? |
|
|
metallon
21. maj 2012 18:14:08
Pridružen od: 28. apr 2012 362 objav 326 70 8 |
#4
Hmm v xml dodaj idponudbe in v MySQL dodaj idponudbe (INT oboje), ne rabi biti UNIQUE. Nato samo gledaš ali se idponudbe v xml ujema z idponudbe v bazi.Če se ujema, ne vpišeš ponudbe v bazo, če pa se ne ujema pa ponudbo vpišeš. To je če lahko xml dopolniš, če ga ne moreš glej po imenu ponudbe oz. kaj bi bilo čimbolj uniq. |
|
|
werky
21. maj 2012 18:16:04
Pridružen od: 16. apr 2012 787 objav 796 168 26 |
||
|
technolog
21. maj 2012 18:16:15
Pridružen od: 14. nov 2011 598 objav 768 300 22 |
#6
Index = kazalo Idekse postavljamo na bazo, zato da se poizvedbe na bazo hitreje izvajajo (+ še drugi razlogi), v resnici čista analogija kazala v telefonskem imeniku. Problem je "overindexing", to pomeni, da kaki newbi postavijo index povsod, čeprav ga sploh ne rabijo, kar ima obraten učinek, upočasnjevanje, kadar se podatke na bazi popravlja + ogromno prostora porabijo te indeksi. Mislim, če kdo dejansko rabi 64 indexov je to lahko samo v primeru, da se dela data warehousing tip zvezda. Ne pa pri neki simpl aplikaciji. Vse indexe si lahko enostavno ogledaš v kakem phpMyAdminu. Z linuxom že 7 let. Pro web development.
|
|
|
metallon
21. maj 2012 18:17:36
Pridružen od: 28. apr 2012 362 objav 326 70 8 |
||
|
werky
21. maj 2012 18:19:32
Pridružen od: 16. apr 2012 787 objav 796 168 26 |
#8
Hvala za bološo razlago...sej pravim,nimam pojma o bazah...Samo ni mi jasno,polje lahko vpišem v bazo,ne morem pa spremenit v unique? Čeprav ni ravno pomembno,bom verjetno upošteval Metallonov nasvet, me pa vseeno zanima v čem je štos. |
|
|
metallon
21. maj 2012 18:32:35
Pridružen od: 28. apr 2012 362 objav 326 70 8 |
#9
Mogoče pokažeš.. kako imaš zgrajeno podatkovno bazo ?
Vzameš ponudbaid iz xmlja. če je mysqlnumrows>0 pomeni da je ponudba že vpisana in je pač ne vpišeš |
|
|
werky
21. maj 2012 18:36:50
Pridružen od: 16. apr 2012 787 objav 796 168 26 |
#10
Ammm,kako pa to dosežem? |
|