Alnis Posted February 16, 2008 Report Share Posted February 16, 2008 man ir sekojoša tabula: 1. tabula id | nosaukums| parent_id 1 | alus | 0 2 | vīns | 0 3 | tervetes alus | 1 4 | bauskas alus | 1 5 | užavas alus | 1 6 | pilsenes alus | 1 7 | cesu alus | 1 8 | sarkanis vins | 2 9 | baltais vins | 2 10 | tara | 0 11 | stikla pudele | 10 12 | pvc | 10 13 | tetra paka | 10 tagad man vajag uztaisīt tādu izvēlni: 1. alus: 1.1. stikla pudele 1.1.1 tervetes alus 1.1.2 bauskas alus 1.1.3 užavas alus 1.1.4 pilsenes alus 1.1.5 cesu alus 1.2. pcvc udele 1.2.1 tervetes alus 1.2.2 bauskas alus 1.2.3 užavas alus 1.2.4 pilsenes alus 1.2.5 cesu alus 1.3. tetra paka 1.3.1 tervetes alus 1.3.2 bauskas alus 1.3.3 užavas alus 1.3.4 pilsenes alus 1.3.5 cesu alus 2. vins: 2.1. stikla pudele 2.1.1 sarkanis vins 2.1.2 baltais vins 2.2. pcv udele 2.2.1 sarkanis vins 2.2.2 baltais vins 2.3. tetra paka 2.3.1 sarkanis vins 2.3.2 baltais vins kā to dabūt gatavu? skaidrs, ka vajag vēl vienu tabulu, kura varētu izskatīties šadi: tabula_nakamais_limenis id | id_sadala | nextid_parentid 1 | 1 | 10 2 | 1 | 1 3 | 2 | 10 4 | 2 | 2 tātad doma tāda, ka sadaļai Alus (id_sadala=1) pirmā nākamā izvēle ir 10, ka sir tara un pēc tam nākamā izvēle ir alus šķirnes, kur parent_id= 10. Tieši tāpat arī vīniem? Varbūt ir kāds ergonomiskāks risinājums? Link to comment Share on other sites More sharing options...
bubu Posted February 16, 2008 Report Share Posted February 16, 2008 Vispirms ieteiktu atdalīt tos pudeļu tipus stikla/pvc/tetra uz atsevišķu tabulu. Kā arī atdalīt dzērienu tipus atsevišķā tabulā (alus/vīns). Citādi sanāk, ka tu vienā tabulā glabā trīs dažādus datu veidus - kas neatbilst nekādam veselajam saprātam (normālformām) :) veidi id | nosaukums 1 | alus 2 | vīns pudeles id | nosaukums 1 | stikla pudele 2 | pvc 3 | tetra paka dzērieni id | nosaukums | veida_id 1 | tervetes | 1 2 | bauskas | 1 3 | užavas | 1 4 | pilsenes | 1 5 | cesu | 1 6 | sarkanis | 2 7 | baltais | 2 Un tad taisīt starptabulu starp tām pudelēm un veidiem: pudelju_veidi pudeles_id | veida_id 2 | 1 3 | 1 1 | 2 2 | 2 3 | 3 Un tad jau no šīm tabulām tev vajadzētu būt skaidrs kā uzrakstī kverijus - visparastākie joini. Link to comment Share on other sites More sharing options...
Alnis Posted February 16, 2008 Author Report Share Posted February 16, 2008 nu jā, atsevišķās tabulās protams ir smukāk salikt, bet lieta ko es isti nesaprotu, iespejams nekorekti pavaicaju, ir tada: kā noteikt secību, kas nākamais rādīsies, piemēram, viens variants ir: izvēles secība: 1. dzersiena veids 2. kad izvelets veids, talak prasa izveleties no taras veida 3. talak, piemeram prasa, ar kadas krasas korki, pvc un stikla pudelem tiek piedavatas dazadas krasas, bet tetra pakam korku izvele betiek piedacata, jo saja piemera ta nav paredzeta un parlecam; 4. talak kam ir korki, ir jaizvelas- vai atraujams vai atskruvejams- tetra pakas akal sito izlaiz; 5. talak izvelamies alkohola grādus, tatad apritē atgriežās tetra pakas un otrs piemērs: 1. sakuma jaizvelas gradi; 2. tad izvelamies taras veidu 3. nakama izvele dzeriena veids; 4. izvelamies korka krasu; 5. korkis atraujams vai noskruvejams; tresais piemers 1. izvelamies taru 2. tad izvelamies dzeriena veidu; 3. izvelamies grādus 4. korka veidu 5. atskruvejams vai ataujams; kā es tikai ar datubāzes palīdzibu vienkārši varētu no esošajām tabulām ātri pamainit veinu vai otru veidu vai kādu n-to veidu. Proti, lai lietotajs pats varetu pamainit kura izvele bus pirma, kura otra kura tresa (ja pie kadas izveles nakama nav paredzeta, tad parlec uz nakamo)? Link to comment Share on other sites More sharing options...
Recommended Posts