我正在存储一些非常基本的信息“数据源”进入我的应用程序。这些数据源可以是文档(例如PDF等),音频(例如MP3等)或视频(例如AVI等)的形式。比方说,我只对数据源的文件名感兴趣。因此,我有下表:具有属性的实体的数据建模
DataSource
Id (PK)
Filename
对于每个数据源,我还需要存储它的一些属性。 PDF示例将是“页数”。音频示例将是“比特率”。视频示例将是“持续时间”。每个DataSource对于需要存储的属性都有不同的要求。所以,我仿照“数据源属性”是这样的:
DataSourceAttribute
Id (PK)
DataSourceId (FK)
Name
Value
因此,我会像这样的记录:
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'
我的问题是,这似乎并没有成比例的。例如,说我需要为所有的PDF文档与thier总页数以及查询:
Filename, TotalPages
'mydoc.pdf', '10'
'myotherdoc.pdf', '23'
...
的加入需要产生以上结果实在太昂贵。我应该如何解决这个问题?
我不确定是否准备向应用程序中引入其他技术。现在,我想通过适当的数据建模来解决这个问题。 – StackOverflowNewbie 2010-06-02 23:04:42