Gå til innhold

Anbefalte innlegg

jeg må lage en database som holder styr på forskjellige penner som skal leveres til service. hver penn har en ansatt som "eier" og hver ansatt jobber også for en bedrift. bedriften har en sjef som også er ansatt. problemet er da at tabellen ansatt må referere

til bedriftstabellen og omvendt. derfor må jeg først lage begge tabellene uten referanser og så legge til disse etterpå.. jeg har aldri brukt sql før (bruker nå postgre) så jeg vet ikke om dette er riktig måte å "designe" databasen på engang. er det en annen måte å gjøre det på som er mer vanlig? hvis det var litt uklart så hadde jeg håpet at dette skulle funke:

CREATE TABLE company (
       id              serial primary key,
       name            text,
       adresse         text,
       manager_id      int references employee
);

CREATE TABLE employee (
       id              serial primary key,
       name            text,
       password        text,
       company_id      int references comany,
       adresse         text
);

CREATE TABLE pen (
       sn           int,
       employee_id     int references employee,
       status          text
);

Endret av teflonpanne
Lenke til kommentar
Videoannonse
Annonse
jeg må lage en database som holder styr på forskjellige penner som skal leveres til service. hver penn har en ansatt som "eier" og hver ansatt jobber også for en bedrift. bedriften har en sjef som også er ansatt. problemet er da at tabellen ansatt må referere

til bedriftstabellen og omvendt. derfor må jeg først lage begge tabellene uten referanser og så legge til disse etterpå.. jeg har aldri brukt sql før (bruker nå postgre) så jeg vet ikke om dette er riktig måte å "designe" databasen på engang. er det en annen måte å gjøre det på som er mer vanlig? hvis det var litt uklart så hadde jeg håpet at dette skulle funke:

(SQL Kode)

5383723[/snapback]

Det som er morsomt med databaser er at det ikke er noen bestemt fasit. Man kan ikke si at dette er rett. Så, i steden for å rette på løsningen din, kan jeg komme med litt generell informasjon, og så kan du vurdere selv.

 

Sirkulære referanser er ikke alltid hensiktsmessig, det kompliserer tidvis innsetting av data, siden man i dette tilfellet først må opprette et firma, dernest en ansatt, for så å oppdatere firmaet med informasjon om sjef. En måte man kan fjerne den sirkulære referansen på er å trekke informasjonen om hvem som er sjef for bedriften ut i en egen tabell.

 

Når det gjelder navngivning av objekter er det opp til den enkelte (evt enkelte bedrift) å bestemme seg for en navnestandard, men for alt i verden, gjør det konsistent. Personlig foretrekker jeg engelsk, men jeg vet at det finnes mange motstandere av det der ute.

 

Til slutt må jeg si meg litt forvirret av sql-koden din, men det er sikkert fordi jeg ikke har sett på PostGres selv enda. Er det slik at en fremmednøkkel alltid refereren til en kolonne ved navn id siden du ikke spesifiserer hvilken kolonne fremmednøkkelen peker på?

 

Ellers vil jeg anbefale deg litt litteratur om databasedesign, det er et spennende fagområde :)

Endret av roac
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...