Relationelt skema

Tags:    databaser

<< < 12 > >>
Hejsa

Jeg skal lave et relationelt skema over databasen.
Jeg har et klassediagram hvor klasserne står med stort, og atributterne med småt.

Tabelerne skal tegnes op, og tegne en pil fra fremmednøglerne til
primærnøglerne.

Hvordan vil i løse det?

Mit ER-diagram er således:

KUNDE Navn, adresse
LEJEAFTALE periode, rabat
PRIVATKUNDE navn, adresse
ERHVERVSKUNDE kreditvurdering, rabataftale
STATION Navn, adresse
PRISGRUPPE Navn, grundpris
BIL Mærke, model, årgang, km.tal, reg.nr





16 svar postet i denne tråd vises herunder
8 indlæg har modtaget i alt 11 karma
Sorter efter stemmer Sorter efter dato
Du skriver:

"Tabelerne skal tegnes op, og tegne en pil fra fremmednøglerne til
primærnøglerne."


Hvis du fortæller os hvad dine fremmednøgler og primærnøgler er, så kan vi svare på dit spørgsmål: "Hvordan vil i løse det?"

I bund og grund er det vel bare at lave en kasse med hver tabel og så tegne streger mellem dine nøgler?


Eksempler på nøgler er jo:

KUNDE Navn, adresse (Kundenr. som primærnøgle)
LEJEAFTALE periode, rabat (aftalenr. som primærnøgle og kundenr. som fremmednøgle)





Indlæg senest redigeret d. 19.11.2011 15:42 af Bruger #9814
Du bliver nødt til at udbygge dit klassediagram - altså gå fra analyse til design. Så lav et design klassediagram hvor du har alle attributterne med i klasserne.

Du kan ikke lave et ER diagram med de attributter du har der, da alle nøglerne mangler.



Du har klassen kunde som er en generalisering. På den sætter du de egenskaber som er fælles for en erhvervs- og privatkunde (adresse, etc.). Så laver du to specialiseringer og det er jo også bare kunder, så nøglen for erhverv og privat er jo også et kundenr.



Det kommet jo helt an på hvordan dine relationer er.

Hvis du nu laver tabllerne sådan her

Kunde
- Kundenr (Primærnøgle)
- Navn
- Adresse
- Postnr
- By
- Type (Privat eller erhverv)

Lejeaftale
- Aftalenr (Primærnøgle)
- Start
- Slut
- Rabat
- Kundenr (Fremmednøgle)

Prisgruppe
- Gruppenr (Primærnøgle)
- Navn
- Grundpris

Bil
- Vognnr (Primærnøgle)
- Mærke
- Model
- Årgang
- KM
- reg.nr
- Prisgruppe (Fremmednøgle)
- Kundenr (Fremmednøgle)

Den sidste tabel (Station), aner jeg ikke rigtig hvad du vil med.

Jeg håber det er det du søger






Indlæg senest redigeret d. 19.11.2011 17:55 af Bruger #15663
Prisgruppe er vel en gruppe som hver enkelt bil er placeret i?

Er prisgruppen relateret til kunden eller hvordan hænger det sammen?

Station
- Skadesnr (Primærnøgle)
- Skadebeskrivelse
- Vognnr (Fremmednøgle)



Så skal prisgruppe jo ikke have en fremmednøgle. Da relationen mellem Prisgruppe og bil er en prisgruppe til mange biler.

Så vil jeg lade dig selv finde svaret på dit sidste spørgsmål. Husk at tage kigge på den linje jeg har skrevet øverst i denne post.



Ikke sikker på, hvad dit system skal kunne.

Men hvis det er et spørgsmål om at kunder lejer biler. Så burde du nok rykke bilens Vognnr op som fremmednøgle i aftale tabellen og fjerne kundenr som fremmed nøgle i biltabellen i daniels forslag.

I den nuværende form forudser jeg fire problemer.

1. Det er ikke muligt at finde ud af, hvilken lejeaftale der passede til hvilken bil. Hvis kunden har/har haft mere end en aftale.

2. For hver ny igangtrædende lejeaftale kræver det at du retter i en fremmed nøgle (kundens i biltabellen).

3. Det er fuldkommen umuligt at finde ud af hvilke perioder en bil er lejet i. Medmindre lejeperioden altid starter lige på det tidspunkt bilen lejes.

4. Dette er teknisk set det samme som 3. Det er umuligt at oprette en lejeaftale om lejeaftale om lejning af en bil i fremtiden.


Har ikke forstand på relationsskemaer, Men ovenstående ville gælde for E/R og når du går i gang med at programmere.





Jens har helt ret.

Der er fejl og mangler på det jeg har smidt tidligere.

Men da jeg har lavet den ud fra uden at vide hvordan systemet skal bruges, ja så blev det til en meget hurtig og IKKE gennemarbejdet opstilling



De klasser har da atributter? Der skal bare vælges hvilke atributter som er primær og fremmednøgler.



Du skal starte med at kigge på hvilke relationer du taler om.
En-til-en
en-til-mange
mange-til-mange




<< < 12 > >>
t