我正在存儲一些非常基本的信息「數據源」進入我的應用程序。這些數據源可以是文檔(例如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