teflonpanne Skrevet 4. januar 2006 Del Skrevet 4. januar 2006 (endret) 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 4. januar 2006 av teflonpanne Lenke til kommentar
roac Skrevet 4. januar 2006 Del Skrevet 4. januar 2006 (endret) 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 4. januar 2006 av roac Lenke til kommentar
teflonpanne Skrevet 5. januar 2006 Forfatter Del Skrevet 5. januar 2006 takk for svar. endte opp med det jeg posta i det første innlegget. likte ikke helt at det var sirkulært, men kom ikke på noe annet så det får gå. angående fremmednøklene så refererer de automatisk til primærnøkkelen til den andre tabellen hvis du ikke sier noe annet Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå