我有這種情況下,我需要數據庫表設計的建議。在這種情況下正確的mysql表設計/關係
背景
我開發在PHP的應用程序(cakephp的要準確)。我們在上傳XML文件的位置解析文件並將數據保存在數據庫中。這些XML可能是文件或網址提要,這些來自各個供應商的數據。它的目的是從源URL收集各種場地數據,場館可以像酒店,戲院,學校,餐廳等
問題
初始表爲這些場館結構如下事情。表最初是爲了存儲通用信息而設計的。
隨着來自不同來源的數據越來越多,我意識到不同類型的場館有很多屬性。
例如 一個酒店可以有一個像
price_for_one_day, types_of_accommodation, Number_of_rooms etc
其中一些屬性爲學校不會有他們,但有不同的一組attributes.Restaurant的會有一些其他屬性。
我的第一個想法是創建兩個表名爲vanue_attribute_names,Venue_attributes
##table venue_attribute_names
_____________________________
id
name
##table venue_attributes
________________________
id
venue_id
venue_attribute_name_id
value
所以,如果我發現任何新的屬性我想創建一個在屬性表有關係的價值。但我懷疑這不是正確的做法。我相信可以有任何其他的方法呢?此外,如果表格變得巨大,則可能會因性能問題,因爲連接數增加以及sql查詢
正在創建儘可能寬的表以及所有可能的屬性,因爲列是正確的方法嗎?請告訴我。如果有任何我可以參考的鏈接,我可以關注它。謝謝
不幸的是選擇另一個數據庫現在不是一個選項。發生了很多事情,除了設計外,我們幾乎完成了。我解釋的只是應用程序的一部分,還有更多。 – 2013-02-19 12:42:11
沒有必要將所有東西都放到MongoDb中。只需將XML中的內容保存到MongoDb中,並使用服務(-class)對其餘應用程序進行訪問即可。 – BetaRide 2013-02-19 12:57:50