在我的應用程序中,我在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