webForumDet fria alternativet

Databasdesign #2

5 svar · 448 visningar · startad av devotion

devotionMedlem sedan jan. 20012 711 inlägg
#1

Hmmm, då ska vi se om jag kan lyckas göra mig förstådd... Jag vet knappt om jag förstår mig själv, men jag har iaf tänkt lite... ;)

Jo!
Jag har en databasdesign som ser ut så här:

tblPrice
*articleNumber (PK)
*articleSupplierId (PK)
*articlePrice
*articleCategoryNumber

Förklaring:
tblPrice kan ha samma artikelnummer flera gånger, men med olika leverantörer och priser. Det är även därför som articleCategoryNumber finns med här. I tblArticle finns endast artikelnumret med en gång. articleCategoryNumber kan vara olika beroende på leverantör.

tblSupplier
*supplierId (PK)
*supplierName
tblCategory
*categoryNumber (PK)
*supplierId (PK)
*categoryName
tblArticle
*articleNumber (PK)
*articleName
*articleUnit

Förklaring:
articleCategoryNumber kan vara olika beroende på leverantör. Därför är det inte med här.
**Det är har jag börjat fundera lite.... Jag har ju ingen tabell som har articleName som unikt. I tblArticle kan samma articleName finnas med upp till 5 gånger beroende på om leverantörerna har olika articleNumber på samma articleName.

I tblCart lagras de artiklar som man vill jämföra mellan de olika leverantörerna.

tblCart
*orderId
*userId
*articleName (PK)
*articleAmount

Det jag vill uppnå är om en artikel ändras i tblArticle dvs articleName ändras, skall det även slå igenom i tblCart....
Men kan ju samma articleName (dock med olika nummer) finnas med flera gånger... Det är då jag inte får ihop det hela.... Någon som förstår och kan reda ut detta?**

Mvh
Henrik

devotionMedlem sedan jan. 20012 711 inlägg
#2

Nu har jag tänkt lite till.. ;)

Kanske ska ha det så här istället:

tblArticle
*articleName (PK)
*articleUnit 

tblPrice
*articleNumber (PK)
*articleName (FK)
*articlePrice
*articleCategoryNumber
*articleSupplierId (PK)

tblCategory
*categoryNumber (PK)
*supplierId (PK)
*categoryName

tblDiscount
*supplierId (PK)
*categoryNumber (PK)
*articleDiscount

tblCart
*articleName (FK)
*supplierId
*userId
*articleAmount

Nu är ju tblArticle "huvudtabellen" och jag bygger mitt resonemang å att ett artikelnamn kan ha flera artikelnummer...

Tänker jag rätt???

I det här läget kan man väl också fixa så att artikelnamnet ändras i tblCart och tblPrice om det ändras i tblArticle...

Synpunkter tack! ;)

Mvh
Henrik

emissionMedlem sedan dec. 19996 095 inlägg
#3

Det kan mycket väl vara rätt. Jag har ingen riktig koll på dina datakällor...

Men, det känns spontant som om din lösning egentligen skulle må bra av att centreras kring en helt egen Article-entitet, som leverantörernas artiklas knyts mot.

tblArticle
*articleId  (PK)
*articleName
*articleUnit

tblSupplierArticles
*supplierId (PK)
*articleId (PK)
*articleNumber 
*articlePrice
*categoryNumber

tblCategory
*categoryNumber (PK)
*supplierId (PK)
*categoryName

Egentligen är det redundant att knyta fast kategorierna i leverantörerna, 
eftersom denna relation är given genom själva artiklarna,
men om de i verkligheten är strikt knutna till leverantörerna så 
är det rätt att databasen återspeglar detta

tblDiscount
*supplierId (PK)
*categoryNumber (PK)
*articleDiscount

tblCart
*articleId
*supplierId
*userId
*articleAmount
devotionMedlem sedan jan. 20012 711 inlägg
#4

Hej! :)
Det var det jag misstänkte, att ha en tabell till. Jag kunde bara inte förklara riktigt... Men du förstod ju.. (y) ;)

Jag får ju fixa till min kod lite efter den nya strukturen, men det känns ändå bättre. Jag blev helt enkelt låst innan... Och det är ju bätte att komma på det nu...

Jag återkommer nog..

Mvh
Henrik

devotionMedlem sedan jan. 20012 711 inlägg
#5

Hepp!

Ger mig ut på en 4-veckors resa imorgon.... Återkommer i början på juli!

Mvh
henrik

devotionMedlem sedan jan. 20012 711 inlägg
#6

hepp... hemma igen.... Nu ska det designas databaser... ;)

Genererad på 386 ms · cache AV · v20260730165559-full.f96bc7eb