回答
我有一些表格,可以有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. 数据库设计为1-1,其中一边外键引用多个表?
- 2. 数据库设计,在同一个表
- 3. 一般在数据库设计中,哪一个表最好有两个引用或一个表?
- 4. couchDB设计文档不在所有其他文档的末尾
- 5. 从数据库表返回计数接合其他表
- 6. 什么是从其他数据库更新表数据的最有效方法?
- 7. 将单个表数据从一个数据库传输到具有相同表名的其他数据库?
- 8. 数据库设计的两个表有关的一个ID
- 9. 数据库设计 - 一个链接表或多个链接表?
- 10. 数据库设计 - 列在一个表中参考两个表
- 11. 数百个表的数据库设计
- 12. 数据库表的文档
- 13. 用于将表与其他表中的一个相关联的数据库设计
- 14. 数据库获取所有来自其他数据库表
- 15. 数据库表设计
- 16. 数据库表设计
- 17. 数据库表设计
- 18. Mysql数据库表设计
- 19. 数据库表格设计
- 20. 设计数据库:表
- 21. 数据库表格设计
- 22. SQL:获取一个数据表的计数,并加入其他
- 23. 对于与同一个表具有1对1关系的多个表,最佳数据库设计是什么?
- 24. 数据库设计文档的标准
- 25. 设计文档数据库模式
- 26. 数据库表,一个表引用多个不相关的表
- 27. MySQL数据库规范化..一个表连接多个其他?
- 28. 数据库设计 - 多查找/枚举表或一个大表?
- 29. 从一个表中选择其他两个表的计数
- 30. 设计一个数据库
这听起来像标准归一化。请将“my_table”更改为“作者”和“内容”之类的特定示例 - _IF_,这就是您的想法。否则,它看起来像一个可怕的模式。 –
@RickJames“my_table_n”只是在这里作为例子。这些表之间没有任何关系,像上面的更新:汽车,房子,水果,作者,...我认为可以有一个设计,以避免指定表FK在文档表中添加一些“父”表,其他表可以继承。 – sdespont