Avatar billede jonas_h Nybegynder
06. juli 2010 - 18:36 Der er 6 kommentarer

Korrekt modellering af scenarie

Jeg er pludselig blevet i tvivl om min modellering rent faktisk er god:
Har følgende eksempelscenarie:

Der findes de 3 tabeller: <Country>,<City>,<Rules>,<Job> som har følgende struktur:

Country: Id, Name
City: Id, Name
Job: Id, CountryId(FK)
Person: Id, CityId(FK), JobId(FK)

En person har både tilknyttet en by (og derved også et land) og samtidigt tilknyttet et "Job". Men ovenstående kan jo sagtens være noget rod, da personen nu faktisk kan have jobs fra ALLE lande selvom han er tilknyttet en by til et specielt land. Jeg er gået lidt død og kan ikke helt se hvordan man kommer udenom det?

Ved selvfølgelig godt, at det kan sikres i data access laget, men synes bare ikke det er pænt, når to forskellige "veje" i databasen kan give forskelligt svar. (Slå land op via regel eller via by).
Avatar billede arne_v Ekspert
06. juli 2010 - 19:03 #1
Er der et problem?

Det eksisterer vel i virkeligheden at en person bor i et land og arbejder i et andet land !?!?
Avatar billede arne_v Ekspert
06. juli 2010 - 19:06 #2
Hvis det ikke give rmening i din problem stilling saa drop city fra person og gaa person->job->city->country.
Avatar billede jonas_h Nybegynder
06. juli 2010 - 20:12 #3
Ok det var bare et eksempel - men lad os nu bare sige man kun kan have jobs i sit eget land. Problemstilling er bare, at entitien "Job" eksisterer på tværs af lande, og en person skal tilhøre et "job" som er oprettet i det land. 

Hvis jeg går person->job->city->country er jobs jo pludselig by-afhængig?

Jeg kan ikke lige huske alle de forskellige normaliseringer, men jeg synes bare at kunne huske, at når man får forskellige resultater ved at gå to forskellige veje, så er der noget galt med strukturen.
Avatar billede Syska Mester
06. juli 2010 - 21:09 #4
Ja, er det ikke noget med delvis afhængigheder af den primær nøgle eller noget i den retning.

Men er løsning ikke noget med en trinær table(mener jeg det hedder) ...

Så du har ID fra job, city og country i samme table ... eller ? hmmm, tænke tænke ... varmen har måske brændt min hjerne.
Avatar billede jonas_h Nybegynder
06. juli 2010 - 21:58 #5
Hmm in trinær tabel vil vel bare gøre, at der er en masse vedligeholdelse når der oprettes et nyt job til et land f.eks.. Men kan godt følge din tanke.

Men tror bare jeg ender med at lave strukturen som jeg har skrevet, og så må jeg holde styr på det hele i business laget. Eneste måde det kan gå i kage på er, hvis man manuelt ændrer ting i databasen så.
Avatar billede Syska Mester
06. juli 2010 - 22:18 #6
Ja, jobet skal i JobTable ... men er generelt hvis alle lande skal have det og du undgår vel også det du var bange for skete ... :-)

Men der er mange løsninger på et problem ... :-)

mvh
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
Kategori
Computerworld tilbyder specialiserede kurser i database-management

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