Visa ett inlägg
Oläst 2012-09-16, 08:54 #2
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Nej, du är inne på fel spår.

Du bör normalisera databasens struktur. Se http://sv.wikipedia.org/wiki/Normalform_(databaser) för detaljer om normaformerna. Det finns många andra bättre beskrivningar av hur normalisering går till men du får söka lite på Google för det.

En grundläggande sak att tänka på är att varje kolumn ska användas för en sak och inget annat, du ska ha s.k. "atomära" värden, dvs odelbara värden. Det är 1NF (Första Normalformen).

Men om du läser på wikipedialänken ovan så är det lämpligt att försöka hålla sig till 3:e normalformen, dvs 3NF (BCNF kan du glömma för den har visat sig vara ett missförstånd).

Sammanfattningsvis så ska alla kolumner innehålla atomära värden. Alla tabeller ha en primärnyckel. Primärnyckeln kan bestå av en eller flera kolumner.

"Varje kolumn ska vara beroende av primärnyckeln, hela primärnyckeln och inget annat än primärnyckeln, so help me Codd". (Det ären klassisk vits som brukar användas för att beskriva 3NF).

Du bör m a o bryta ut properties som inte behövs på alla rader i tabellen till egna tabeller och så ska den tabellen innehålla en främmande nyckel till Bil-tabellen som samtidigt är en del av primärnyckeln i egenskapstabellen.

Men du bör även ha en tabell som består av alla möjliga properties, så tre tabeller ser ut att delvis lösa ditt problem.


Tabell: Bil
PK: RegNr
Kolumn: Brand

Tabell: Egenskap
PK: EgenskapID (Ex: ProdMonth)
Kolumn: Egenskap (Ex: Tillverkningsmånad)

Tabell: BilEgenskap
Kolumn: PKFK->Bil ("ABC123")
Kolumn: PKFK->Egenskap ("ProdMonth")
Kolumn: Värde ("2012-03")

Nu har jag lett in dig på rätt spår, men det finns mer detaljer som vi kan ta sen du satt dig in i denna grund.

Senast redigerad av Conny Westh den 2012-09-16 klockan 09:01
Conny Westh är inte uppkopplad   Svara med citatSvara med citat