Jump to content
php.lv forumi

Par 3. normālformu.


andrisp

Recommended Posts

Esmu sācis apgūt normālformu pamatus.

 

Piem., ir šāda struktūra priekš pasūtījumiem, kas neatbilst 3. normālformas noteikumiem.

 

Pasūtījumi:

 

id | date | user_type | user_id

 

 

Anonīmie klienti:

 

id | name

 

 

Reģistrētie klienti:

 

id | name

 

 

Kā uzrakstīt to pašu, tik lai atbilstu 3NF ?

 

PS. Vispār ceru, ka galīgi neesmu saputrojies :).

Link to comment
Share on other sites

Nu ja

 

A = {id,user_id,...}

U = {user_id,user_type}

 

bet, ja uzliec key {user_type, user_id}, tad gan ir OK (ja tev tās useru tabulas atšķirās pa visiem 99%)

 

Pēc pieredzes saku, ka tas ir OK (tavs sākuma variants).. un Axapta piemēram krustam-šķērsām šitais izmantots un turklāt baigi labi viss strādā.

Tikai čakars iestājās tad, kad jāraksta kopējs Joins (uz visiem user-tipiem) [Axaptā tas arī ir perfomance jautājums, jo jātaisa N-tie selekti, bet var nokešot]...

 

Tā kā jāskatās konkrēts pielietojums, nevis NF ievērot

Edited by Delfins
Link to comment
Share on other sites

Delfins, es nespēju sagremot ko tu man saki:

 

A = {id,user_id,...}

U = {user_id,user_type}

 

bet, ja uzliec key {user_type, user_id}, tad gan ir OK (ja tev tās useru tabulas atšķirās pa visiem 99%)

 

 

Es izsadomāju šādu veidu:

 

Pasūtījumi:

id | date | user_main_id

 

Klienti:

main_id

 

Reģistrētie klienti:

id | user_main_id | name

 

Anonīmie klienti:

id | user_main_id | name

 

 

Neesmu vienīgi vēl pamēģinājis, kā ir izpildīt dažādus kverijus izmantojot šādu struktūru.

Edited by andrisp
Link to comment
Share on other sites

A tev tās tabulas "anonīmie klienti"/"reģistrētie klienti" tik bezjēgā atšķiras? IMHO, jēdzīgi būtu to visu divās tabulās salikt:

pasūtījumi

pas_id | user_id | date

klienti

user_id | name | is_registred

Un imho, būtu tev pilnīga laime, jo lauciņš user_type pie pasūtījumiem man izsauuc neveselīgas aizdomas. Un divas tabulas ar useriem, kas atšķiras tik pēc reģistrēts/anonīms ar. Tak, varbūt ar ko nesapratu tavā domā....

Edited by john.brown
Link to comment
Share on other sites

×
×
  • Create New...