在我的应用程序中,我在DB(MySQL)中有2个表格: Companies
和News
。 Company
有很多News
。组织数据库
Company
可以有一组图片,这些图片会显示在company
“查看页面”以及有关该公司的所有相关信息。
我添加了一个Photos
表旁边的字段:id
company_id
filename
我的问题是:现在我还需要有将属于News
图片。 我要补充另一个表,这将被称为例如Media
或者我应该在PHP我Photos
表附加字段(type
)添加,重命名company_id
到foreign_id
然后筛选结果,并建立更复杂的查询,例如AND 'type' = 1
去取照片与公司相关,'type = 2'可获取与news
相关的照片。
什么是更好的方法?
你不觉得这种方法对我所需要的有点矫枉过正吗?因为我有两个简单的X hasmany Y关系。问题是 - 我需要有两张不同的桌子或一张桌子吗? – Derp 2013-02-26 19:38:28
我不确定2或1桌子是什么意思。已经有3个表格:“照片”,“公司”和“新闻”。你的问题是关于如何将'照片'加入'公司'和'新闻',但你提供的任何可能的解决方案都是正确的。拥有完整的“照片”副本(第一个想法)意味着只要您需要与“新闻”和“公司”相关的一张照片,就会有重复的数据(即“照片”和“媒体”中的相同照片)。使用'type'字段来确定链接到(第二个想法)的表正在打破使用RDBMS的全部要点 - 您将永远不会有任何实际的参照完整性。 – leftclickben 2013-02-27 08:34:03
对不起,也许我的英文不允许我准确地传达信息。我从来不需要有一张照片与“新闻”和“公司”相关 – Derp 2013-02-27 10:28:52