2017-05-19 57 views
1

我正在創建一個數據庫,我不確定設計我的表的最佳方法。我有一個房地產屬性表,我想存儲有關這些屬性的信息 - 例如臥室,浴室,大小......如果看起來有用,我可能會在未來存儲其他信息 - 例如,最後購買價格或建立日期,所以我需要靈活地添加。最好有一個主表或分割成多個表?

爲每個「特徵」創建一個單獨的表格還是爲所有特徵創建一個表格更好?分離特徵看起來更清晰,但更容易編程纔能有一張表。

特性表

id property_id characteristic value 
1 1   bedrooms  3 
2 1   bathrooms  2 
3 1   square feet  1000 
4 2   bedrooms  2 
... 

OR

臥室TABLE

id property_id bedrooms 
1 1   3 
2 2   2 
... 

衛浴表

id property_id bathrooms 
1 1   2 
... 

原諒我,如果這是一個愚蠢的問題,我的數據庫設計的知識是非常基本的。

+0

一張表似乎是正確的(id在此沒有用處) – Strawberry

+0

但是,當使用eav模型時,我喜歡按數據類型拆分屬性,所以整數類型的東西放在一個表中,日期類型的東西放入另一張桌子等, – Strawberry

回答

0

我會建議您的兩個建議之間的中間地帶。即興,我會做

屬性表(UID地址郵編其他獨特的識別性能)

室表(UID,屬性ID,客房類型,房間大小,樓層,形狀,顏色,光潔度,其他袋鼠具體細節等..)

房產詳細信息(UID,屬性ID,批量大小,學區,如何成本,稅率,其他的全部財產詳情)

最後一個表或兩個歷史如。

物業銷售歷史(UID,物業ID,salesdate,saleprice,銷售的原因,等..)

通常通過只是「它符合」邏輯可以產生你不錯的效果....護理需要分組數據只考慮表1to1和1tomany關係需求。

0

我關注到這一點:

「我有房地產的一表」

現在據我知道你已經是一個不同的類型:

Houses 
Bedrooms 
Comfort room and so on. 

對於進一步的解釋: 你必須是一個表:

1. House type 
2. House names,description,housetypeid,priceid,bedroomid,roofid,comfortroomid and any other that related to your house. 
3. Bedroom type 
4. Comfort room type 
5. Dining type 
6. roof type if it has. 
7. House prices 
8. Bathroom type 

這樣的事情。有幾列

+0

即使牆壁類型,如果它有。 –

0

一個表:

列價格,#BR,#bath,FR,DR,平方英尺和少量的其他常用檢查屬性。然後一個JSON列與所有其他信息(2洗碗機,水療中心,海景等)。

使用WHERE爲單獨的列條款,然後完成你的客戶端代碼過濾,從而可以更方便地查找到JSON。

相關問題