2017-04-13 28 views
0

我有應用程序,用戶可以創建/更新不同對象的信息(公寓,房間,房屋,土地等)數據庫設計用於各種物體

每種類型的對象都有不同的參數。

我看到的解決方案:

  1. 存儲所有信息裏面一個表 id,title,object_type,rooms_count,house_floors_count,land_area,flat_area, description, etc..
    優點:快速搜索(因爲每列有正確的數據類型,rooms_count - 整數,說明 - 文本)
    缺點:巨大的非規範化

  2. 存儲信息在不同的表 個對象:ID,標題,object_type的,價格 object_params:ID,param_title,param_type(整數,文本,浮點型,等) object_param_values:ID_PARAM,id_object,值
    優點text類型的列):非規範化,前端保證當object_type='flat',然後只爲flat參數顯示用戶(在1.它是這樣工作太)
    缺點valueobject_param_values具有類型text什麼是壞的速度。

+0

見問題與我添加的EAV標籤相關。 –

回答

0

還有第三個選項,使用兩個表。

一個表來存儲對象的基礎知識: ID,標題,OBJECT_TYPE

另一個表來存儲參數: ID,OBJECT_ID(從上表),參數,數據