在瀏覽9gag.com時,出現了一個想法(問題)。假設我想創建一個網站,用戶可以添加不同種類的條目。現在每個條目都是diffirent類型,需要diffirent/additional列。獲取記錄結構相同的方式只是部分
比方說,我們可以添加:
- YouTube視頻
- 一個引用這需要引用的作者名和姓
- 閃光遊戲,需要額外的遊戲類別,描述,流派等。
- 需要鏈接的圖像
現在所有的上述全部項目,並有一些colu (如id,add_date,adding_user_id等)和一些diffirent/additional(例如:只有Flash遊戲需要描述或只需要指定圖像需要plus_18列)。問題是我應該如何組織DB /代碼來控制上述所有條目?我可能要命令他們,或者add_date等搜索條目...
想出了我的腦海裏的想法:
- 添加一個「類型」列指定它是什麼條目,並添加所有允許NULL與這個特定類型列無關的可能列。但這是非常討厭的。沒有數據集成。
- 爲附加數據添加一些帶有序列化數據的列,但它使得任何過濾都是一團糟。
- 爲條目創建主(父)表,併爲具體條目類型(它們的附加列/信息)分隔表。但在這裏,我甚至不知道我應該如何恰當地選擇數據,並且只是很討厭。
那麼解決這個問題最好的辦法是什麼?