Hoi allemaal,
Puur voor de fun (en de leerzaamheid) ben ik bezig een soort van Object Broker / Data Layer aan het maken.
Wat ik wil doen is eigenlijk als volgt. Mijn Object Broker geeft een object door die een aantal properties heeft, maar de properties óf het aantal properties weet je nooit van te voren. Je hebt bijv een object Boek die de ene keer een Titel, Auteur en ISBN heeft en de andere keer Titel, Auteur, JaarVanUitgave.
Vrij simpel te doen dmv een Hashtable en een Indexer op mijn class (bijvoorbeeld), maar het probleem zit het in het persistent maken van deze objecten in bijvoorbeeld een database.
Ik gebruik nu SQL Server 2000 en zat ongeveer aan het volgende te denken.
Een tabel Product (ProductID, ProductType)
Een tabel ProductProperty (ProductID, ProductPropertyKey, ProductPropertyValue)
Je voelt hem al hangen, wat voor type veld moet ProductPropertyValue dan zijn om het database-model efficënt te houden?
Ik heb twee dingen bedacht het ene is inventariseren wat voor types ik in mijn applicatie ga aanbieden en iets van de volgende structuur maken:
ProductProperty (ProductID, ProductPropertyKey, ProductPropertyValueInt, ProductPropertyValueVarChar, ProductPropertyValueDateTime, etc)
Ranzig
Het tweede wat ik had bedacht was gewoon verschillende tabellen:
ProductPropertyInt (ProductID, ProductPropertyKey, ProductPropertyValue)
ProductPropertyVarChar (ProductID, ProductPropertyKey, ProductPropertyValue)
..etc..
Ranzig numero deux
Ik heb er zelfs aan gedacht om complete objecten binair te serializen naar de database. Maar dat word een beetje lastig met doorzoeken (of ik moet aparte search tabellen bij houden. Zou mischien nog eens efficiënt zijn ook voor de Indexes).
Ook een object gewoon serializen naar XML heb ik aan gedacht. Het leuke hiervan is dat mijn Object Broker een bepaalde product zou kunnen cachen zodat hij de ge-deserializede (hoe spel je dat?
) versie direct kan aanbieden, maar allerlei losje XML bestandjes voor je objecten is ook niet je-van-het 
Ik vroeg me af of jullie ideeën hadden om dit beter op te lossen. Dit is gewoon een testje dus in principe zit ik niet vast aan wat dan ook. Het gaat me ook meer om het principe dan het uiteindelijk uitwerken.
Bedankt
Puur voor de fun (en de leerzaamheid) ben ik bezig een soort van Object Broker / Data Layer aan het maken.
Wat ik wil doen is eigenlijk als volgt. Mijn Object Broker geeft een object door die een aantal properties heeft, maar de properties óf het aantal properties weet je nooit van te voren. Je hebt bijv een object Boek die de ene keer een Titel, Auteur en ISBN heeft en de andere keer Titel, Auteur, JaarVanUitgave.
Vrij simpel te doen dmv een Hashtable en een Indexer op mijn class (bijvoorbeeld), maar het probleem zit het in het persistent maken van deze objecten in bijvoorbeeld een database.
Ik gebruik nu SQL Server 2000 en zat ongeveer aan het volgende te denken.
Een tabel Product (ProductID, ProductType)
Een tabel ProductProperty (ProductID, ProductPropertyKey, ProductPropertyValue)
Je voelt hem al hangen, wat voor type veld moet ProductPropertyValue dan zijn om het database-model efficënt te houden?
Ik heb twee dingen bedacht het ene is inventariseren wat voor types ik in mijn applicatie ga aanbieden en iets van de volgende structuur maken:
ProductProperty (ProductID, ProductPropertyKey, ProductPropertyValueInt, ProductPropertyValueVarChar, ProductPropertyValueDateTime, etc)
Ranzig
Het tweede wat ik had bedacht was gewoon verschillende tabellen:
ProductPropertyInt (ProductID, ProductPropertyKey, ProductPropertyValue)
ProductPropertyVarChar (ProductID, ProductPropertyKey, ProductPropertyValue)
..etc..
Ranzig numero deux
Ik heb er zelfs aan gedacht om complete objecten binair te serializen naar de database. Maar dat word een beetje lastig met doorzoeken (of ik moet aparte search tabellen bij houden. Zou mischien nog eens efficiënt zijn ook voor de Indexes).
Ook een object gewoon serializen naar XML heb ik aan gedacht. Het leuke hiervan is dat mijn Object Broker een bepaalde product zou kunnen cachen zodat hij de ge-deserializede (hoe spel je dat?
Ik vroeg me af of jullie ideeën hadden om dit beter op te lossen. Dit is gewoon een testje dus in principe zit ik niet vast aan wat dan ook. Het gaat me ook meer om het principe dan het uiteindelijk uitwerken.
Bedankt