Avatar billede netro Nybegynder
26. juni 2009 - 16:16 Der er 7 kommentarer og
1 løsning

1-1 relationship

Jeg forsøger at bruge denne model:

http://www.databaseanswers.org/tutorial4_getting_started_with_db_design/images/amazon_products_v1.gif

Her er Food.product_id og Products.product_id PK's, og der er en 1-1 relation mellem dem. Products.product_id har auto inc.

Men indsættes en række i tabel 1, fejler det, da der ikke er et matchende id i tabel 2 - og vice versa.

Hvordan kan jeg sikre mig, at der godt kan være Products uden Food - men at der ikke kan forekomme Food uden et tilhørende Product?
Avatar billede erikjacobsen Ekspert
26. juni 2009 - 16:27 #1
Så skal du vel lave en 1 - 0..1
Avatar billede netro Nybegynder
27. juni 2009 - 01:47 #2
Ja, hvordan er det jeg opretter den?
Avatar billede erikjacobsen Ekspert
27. juni 2009 - 09:39 #3
Det kan man vel nemmest gøre ved at undlade at erklære den som FK, og lade den være NULL, når der ikke er en reference.
Avatar billede netro Nybegynder
29. juni 2009 - 09:12 #4
Mener du at lade Food.product_id være null? Det må den aldrig være. Eller også forstår jeg ikke?
Avatar billede erikjacobsen Ekspert
29. juni 2009 - 09:22 #5
Jeg kan ikke lige gennemskue hvad vej tingene vender hos dig. Men hvis tabel A sommetider peger på en PK i tabel B, og sommetider ikke, så må værdien i feltet i A vel være NULL, når den ikke peger på noget.
Avatar billede erikjacobsen Ekspert
29. juni 2009 - 09:23 #6
Nå ja, et alternativ er at oprettet en dummy post i tabel B, som A så peger på, når den ikke peger på noget (hehe).

Så skal man bare huske det, når man programmerer op mod databasen.
Avatar billede netro Nybegynder
29. juni 2009 - 09:47 #7
Du gav mig en ledetråd. Jeg skulle faktisk bare vende relationen om, og så erklære begge id'er som PK. For den kolonne med auto inc. skal der slf. indsættes i først, og den må ikke være afhængig af nøglen i den anden tabel.
Avatar billede netro Nybegynder
29. juni 2009 - 09:49 #8
Jeg tager mine points igen (jvf. din webadresse :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester