Hej udviklere.
Jeg er ved at opbygge en handelsdatabase, som skal håndtere handler for kunder gjort af systembrugere.
Databasen skal være meget modificerbar, og bygges op således at det ikke er besværligt at videreudvikle den.
Jeg er dog kommet i tvivl om, hvor vidt opdelingen af data i forskellige tabeller vil få indflydelse på effektiviteten, når det er nødvendigt at gennemløbe flere tabeller for at nå en information.
Følgende er et eksempel på en simplificeret bid af databasestrukturen:
TABLE sale
---------------------
id (int)
customerId (int)
amount (int)
sellerId (int)
TABLE customer
----------------------
id (int)
name (char)
phone (int)
TABLE user
---------------------
id (int)
name (char)
titleId (int)
TABLE title
---------------------
id (int)
title (int)
description (text)
Mit problem opstår så, når jeg skal hente simple informationer. I nogle tilfælde må jeg da "gennemløbe" flere tabeller for at nå denne.
Hvis jeg f.eks. gerne vise en handel med følgende informationer:
Handel NR.: {sale.id}
Customer: {sale.customerId > customer.name}
Seller: {sale.sellerId > user.name}
Seller title: {(sale.sellerId) > user.titleId > title.title}
For at udskrive sælgerens
titel lokaliseres den altså i databasen ved:
- Sælgerens findes, hans ID fremgår i handlen.
- Sælgerens data læses. Titlen fremgår som et ID.
- Navnet på titlen findes i tredje tabel, ved at søge på ID.
For mig lyder det en anelse nonsens at skulle igennem alle de besværlige queries, for at vise så simple informationer.
Men er det nødvendigt, hvis systemet skal være dynamisk? Således at hvis en navnet på en titel ændres, skal den ikke ændres i alle handler og for alle sælgere.
Jeg håber at minoriteten forstod problemstillingen
Indlæg senest redigeret d. 20.09.2008 13:31 af Bruger #6493