回答
我有一些表格,可以有0 .. *文檔。
我假設汽車,房子,水果,作者...是一些有文件的表格。
我會建議爲這些元素創建一個名爲Documentary
的父表。這個記錄表與所有這些表有零或一的關係。記錄表中的記錄將在其他表格中的一個記錄中僅顯示一條記錄。
記錄表格將具有顯示其相關記錄類型的類型字段。
文件表中有文件的FK將解決問題。
(在OOP術語紀錄片將是一個抽象的實體)
@Mosen Heydari謝謝你的回答。你的解決方案是我收到的最好的,應該工作。 – sdespont
歡迎您朋友。 –
想必每個my_table_n
表中包含行指不同的文件。您可以格式化這些行是這樣的:
id (surrogate PK)
document_id (FK to document table)
data whatever information you need in this table.
然後,您可以用額外的數據讀取文檔,像這樣:
SELECT d.something, d.another_thing,
t1.data, t2.other_data, t3.more_data, t4.too_much_data
FROM document d
LEFT JOIN mytable_1 t1 ON d.id = t1.document_id
LEFT JOIN mytable_2 t2 ON d.id = t2.document_id
LEFT JOIN mytable_3 t3 ON d.id = t3.document_id
LEFT JOIN mytable_4 t4 ON d.id = t4.document_id
謝謝@Ollie Jones。事實上,由於我可以有無限數量的文檔,my_table_n表不會引用文檔,但文檔表引用my_table_n。在我的文檔表中,我希望在my_table_n上有外鍵,但我不想爲每個my_table_n指定一個專用字段。 – sdespont
- 1. 關係數據庫設計時,一個表referes到其他人
- 2. 通用數據庫設計 - 我可以引用字段名在其他表
- 3. 數據庫設計爲1-1,其中一邊外鍵引用多個表?
- 4. 數據庫設計,在同一個表
- 5. 向引用其他表的數據庫添加一行
- 6. 臨時表有一個計數爲每個其他表
- 7. 使用這個數據設計一個數據庫表
- 8. 數據庫設計與其他表的多對多關係
- 9. 一般在數據庫設計中,哪一個表最好有兩個引用或一個表?
- 10. 設計一個「表單引擎」的數據庫
- 11. couchDB設計文檔不在所有其他文檔的末尾
- 12. 從數據庫表返回計數接合其他表
- 13. 從一次兩個表檢索數據與一個表引用其他
- 14. 什麼是從其他數據庫更新表數據的最有效方法?
- 15. 一個數據庫表不與任何其他表
- 16. 數據庫設計的兩個表有關的一個ID
- 17. 將單個表數據從一個數據庫傳輸到具有相同表名的其他數據庫?
- 18. 數據庫設計 - 一個表或多個表/連接
- 19. 數據庫設計一個表或兩個表
- 20. 數據庫設計:多個表對一個表
- 21. 數據庫設計 - 一個鏈接表或多個鏈接表?
- 22. 數據庫設計 - 列在一個表中參考兩個表
- 23. 數百個表的數據庫設計
- 24. 數據庫表的文檔
- 25. MySQL數據庫設計:一個用戶表,兩個用戶組?
- 26. 用於將表與其他表中的一個相關聯的數據庫設計
- 27. 數據庫表格設計
- 28. 設計數據庫:表
- 29. 數據庫表格設計
- 30. 數據庫表設計
這聽起來像標準歸一化。請將「my_table」更改爲「作者」和「內容」之類的特定示例 - _IF_,這就是您的想法。否則,它看起來像一個可怕的模式。 –
@RickJames「my_table_n」只是在這裏作爲例子。這些表之間沒有任何關係,像上面的更新:汽車,房子,水果,作者,...我認爲可以有一個設計,以避免指定表FK在文檔表中添加一些「父」表,其他表可以繼承。 – sdespont