Hej !!!Databas design fråga om ett koncept fortsättning;
Till er två som svarade på mitt inlägg, tack för vissat intresse !!!
Jag har kommit underfull med vad poängen med de tabeller jag beskrev var till för:
Type- , Cutomer_Property_Values- och Properties-tabell.
De är till för en webbapplikation, istället för att gå in och ändra i programmet och källkod,
för att lägga till nya klasser och objekt så är detta till för att göra webbapplikationen mer eller
mindre dynamisk i sin struktur. I mitt fall fanns det ett par klasser som var givna t.ex:
Customer, Address, Users. en Customer består av en/flera Addresser och Users och dessa
innehåller givna medlemsvariabler som alltid är mer eller mindre detsamma.
Om man vill lägga till mer information i användaregränssnitt eller hämta in mer data från ett användaregränssnitt så vill man inte behöva skapa nya klasser hela tiden och ändra i koden
för den nya informationen.
Lösningen på detta har jag förstått är att en Customer kan innehålla flera Customer_Property_Value,
denna betår av en Type_Id och en Properties_Id och en Customer_ID (foreignkey's) plus värdet som
en användare skrev in eller valde från användaregränssnitt. I och med detta kan man få tillgång till
mer information om en Customer, ny data som man kanske inte kan klassifiera eller gruppera på
ett bra sätt. Utan det är endast data om en Customer, t.ex. om han vill ha ett newsletter, vilken produkt
han är intresserad av, hur fick han höra talas om vårt företag, inlägg för frågor eller kommentarer osv.
En ny sådan Type kan t.ex. vara "NewsLetter" och denna type kan ha 2 st. värde "YES" eller "NO" och ett
Type_ID för varje val, utifrån denna information kan man från databasen sedan generera en ny radiobutton kontroll på en ASP.NET sida dynamiskt och användaren kan kan sedan göra ett val som sedan skapas och sparas som ett klass-objekt av Customer_Property_Values. I samband med detta
så skapar man en motsvarande Properties i Properties-tabellen, men den har bara ett ID och ett Namn(NewsLetter).
En enkel förklaring som gjorde att jag förstod detta var :
----------------------------------------------------------------
(Type) (Property) (Property_Value)
----------------------------------------------------------------
String mySuperString = "Hejsan hoppas !!!"
Boolean myVariableName = "False" eller "True"
NewsLetter theNewsLetter = "YES" eller "NO"
----------------------------------------------------------------
Vad man mer kan göra med detta är att man kan initiera list-kontroller och labels med text och data
ifrån databasen. Vad jag mer menar är att t.ex en Label och en TextBox tillsammans kan vara av en
viss Type och Property där tabellen Type kan innehålla texten för Labeln och Type_Id så att man kan koppla ihopa TextBoxens indata med ett visst Type_ID och Property_ID, namnet på variabeln.
Jag hoppas att ni förstår vad jag försökt beskriva, men detta kanske ni visste redan, men för mig var
detta ett helt nytt sätt att göra en applikation på, då jag inte har flera års erfarenhet av programutveckling
och detta kanske är en självklarhet. Andra sätt att lösa detta på är genom enkla filer, i Java kan man göra detta med Property API:er.
MVH // Robert