Hallå...
Jag sitter och klurar på en bra databasdesign för ett litet problem som jag funderar över.
Följande är scenariot:
Detta gäller en artikelregister för olika typer av möbler och andra inredningsgrupper så som Lampor, Galleri, Mattor osv osv...
Till varje grupp ovan finns under grupper. Så hos möbler så finns undergrupper: Fåtölj, Soffa 2-Sits, Soffa 3-sits, Pall, Soffbord, Matbord osv osv. För Lampor så finns undergrupper: Bordlampa, Taklampa, Golvlampa, Vägglampa osv osv...
De olika artiklarna brukar man kunna dela in i Serie. Säg att man vill ha en serie Magnus som består av: Fåtölj, Soffa 2-sits, Matbord och en Pall.
Fåtöljen, soffan och Pallen kan man få i olika material typ: Läder eller Tyg, för varje material är det olika färgval. Till Läder så är det: Begie och Svart, medans tyget finns i Röd, Vit. Matbordet finns i Ek, Valnöt och Lackad skiva, där man kan välja färgerna Röd, Vit.
Som märkes så blir det en del valmöjligheter och jag skulle nu vilja få till en databasdesign som gör det enkelt för mig att plocka fram de olika valmöjligheter som finns om jag står på en given artikel.
Säg att jag vill skapa en skylt för min fåtölj. Jag vill du kunna plocka fram vilka andra typer av möbler som finns i denna serie 'Magnus'. Jag skall också kunna se vilka andra färger som finns i just detta material (säg att artiklen som jag står på är Läder-Beige). Det betyder att skylten skall kunna visa att detta är material Läder och Färgen Beige, men att den även finns i färgen Svart. Samt att den även finns i andra material så som Tyg.
Detta vill jag uppnå:
Det jag vill eftersträva är att om jag lägger till en ny artikel, säg att det kommer en ny fåtölj i läder där färgen är röd. Så vill jag kunna plocka fram de artiklar som måste få en ny skylt. Alltså alla fåtöljer i läder och skriva ut dessa igen, där färgen röd är ditt lagd. Om det kommer ett nytt material, säg manchestertyg, så skall man kunna plocka fram alla fåtölj ariklar för att genererar nya skyltar för dessa. Skyltarna skall givetviss skapas utifrån datan som finns i databasen så man inte skall behöva skriva in färger och sånt manuellt.
Jag har suttit och klurat lite och kommit fram till följande borde lösa mina problem, men tycker det blir onödigt krångligt och samtidigt lite väl böckigt att hämta ut datan från databasen på ett snabbt och snyggt sätt.
Här är hur jag tänkt:
Serie tabellen:
Innehåller namnet på serien 'Magnus' och att den tillhör gruppen Möbler (om man nu vill ha en 'Magnus' serie hos lampor.
BaseArticlen:
Innehåller basinformation för artiklen, så som att det är en fåtölj, att den tillhör en speciell serie och andra saker som är gemensamt för att olika fåtöljer i serien, så som leverantörsinformation, storlek osv osv..
OptionGroup:
Innehåller de olika valmöjlighetesgrupper som finns, så som Material, Färg och andra saker som man skall kunna specifisera för artiklar, typ Lampsort för lampor.
OptionDetail:
Innerhåller detaljer för en valmöjlighetsgrupp, så för Material så blir det Läder, Tyg, ManchesterTyg. För färg blir det: Röd, Vit, Svart osv osv..
Article:
Innehåller specifia detaljer för den specifia produkt, så som uniktId, EanCode, Inpris osv osv... Det är denna artikel som består av baseartikel och alla olika valmöjligheter.
ConnectionTable:
Här binder man ihop baseartiklen, men de olika valmöjlighetsdetaljerna tillsammans med artikelID.
Tacksam för input hur förändringar kan göras...
