Je stocke des informations très "sources de données" venant dans mon application. Ces sources de données peuvent être sous la forme d'un document (par exemple PDF, etc.), audio (par exemple MP3, etc.) ou vidéo (par exemple AVI, etc.). Supposons, par exemple, que je m'intéresse uniquement au nom de fichier de la source de données. Ainsi, j'ai le tableau suivant:Modélisation des données de l'entité avec des attributs
DataSource
Id (PK)
Filename
Pour chaque source de données, j'ai également besoin de stocker certains de ses attributs. Exemple pour un PDF serait "nombre de pages." Exemple pour l'audio serait "débit binaire." Exemple pour la vidéo serait "durée". Chaque DataSource aura des exigences différentes pour les attributs qui doivent être stockés. Donc, j'ai modélisé « attribut source de données » de cette façon:
DataSourceAttribute
Id (PK)
DataSourceId (FK)
Name
Value
Ainsi, j'avoir des dossiers comme ceux-ci:
DataSource->Id = 1
DataSource->Filename = 'mydoc.pdf'
DataSource->Id = 2
DataSource->Filename = 'mysong.mp3'
DataSource->Id = 3
DataSource->Filename = 'myvideo.avi'
DataSourceAttribute->Id = 1
DataSourceAttribute->DataSourceId = 1
DataSourceAttribute->Name = 'TotalPages'
DataSourceAttribute->Value = '10'
DataSourceAttribute->Id = 2
DataSourceAttribute->DataSourceId = 2
DataSourceAttribute->Name = 'BitRate'
DataSourceAttribute->Value '16'
DataSourceAttribute->Id = 3
DataSourceAttribute->DataSourceId = 3
DataSourceAttribute->Name = 'Duration'
DataSourceAttribute->Value = '1:32'
Mon problème est que cela ne semble pas à l'échelle. Par exemple, dire que je dois interroger pour tous les documents PDF ainsi que Thier nombre total de pages:
Filename, TotalPages
'mydoc.pdf', '10'
'myotherdoc.pdf', '23'
...
Le nécessaire pour produire les JOIN sont le résultat ci-dessus sont tout simplement trop coûteux. Comment dois-je résoudre ce problème?
Je ne suis pas sûr si je suis prêt à introduire une autre technologie dans l'application. En ce moment, je veux essayer de résoudre cela via une modélisation de données appropriée. – StackOverflowNewbie