2017-09-22 107 views
0

我正在創建一個網站,用戶可以在其中發佈他們家的列表。我有複選框,用戶可以查看他們的家庭包含特性,如游泳池,壁爐,安裝/拆卸車庫等MYSQL選擇值表結構

我只好在心中設計,但我想知道這是更正確的:

  1. 每個特性創建在家裏上市表中的列,並給它一個類型enum('0','1'),其中0代表未選中,1只表示檢查

  2. 創造出包含所有特性表中的屬性可以有這樣的:車庫,游泳池,壁爐等。然後創建第二張桌子,拉動通道aracteristic ID以及與家上市ID對它

對於如:home_1有這麼一行將這樣創建池:

| home_1 | 1 |

其中home_1是上市ID和1是pool特徵表

我應該去哪個選項與ID?

回答

0

發現。

如果你願意查詢房屋只有地址,價格和這些不是那些功能。第二種方法更容易開發和維護。

總之,使用第二種方法,如果你不會單獨查詢那些房屋特徵 。

0

這一切都取決於您保存它們後使用數據的方法。但基本的思路應該是考慮映射在以下方面:

  1. 轉到與第二選項時:

如果兩個實體是多對多的(許多家庭,許多特性),你應該去第二種選擇(即使將來使用連接的代價很小)。

由於您的完整數據庫映射未知,因此如果特性獨立於屬性,我提出了一個選項。意思是說,如果您打算使用特徵來引用其他表格的其他實體,那麼最好再次選擇其他表格。

  • 轉到與第一選項時
  • 如果它僅僅是一個一對多的關係(一個家庭,很多特性),您的第一選擇做工不錯,因爲它不僅會在獲取時降低成本,而且會在您的主記錄更新/刪除時更新/刪除家庭的相關特徵。

    最後,它只由你決定數據模型的映射類型和依賴關係。