2014-03-24 29 views
3

所以我對SQL和數據庫一般都很陌生(只爲最小的站點設計了一個非常簡單的),並且我正在嘗試設計一個爲數據庫驅動的網站設計一些模型的最佳方法。舉個例子,用戶上傳了一個圖庫。我有一個畫廊表,上面有日期上傳,名字等明智的列,畫廊可以屬於一個類別,其中不會有那麼多(最多6個)。我應該將該類別作爲圖庫表格的一列嗎?或者爲類別設置單獨的表格,並在類別和圖庫表格之間建立多對一的關係?我想按照我的觀點來做事情,比如按照上傳日期排列某個類別中的所有畫廊,這些內容之間是否存在性能/便利差異?把這個類別作爲Gallery表格的一個列似乎比我更容易處理,但我不確定最佳做法是什麼。謝謝。SQL數據庫 - 何時使用單獨的表與現有的一列?

回答

1

首先,您需要了解概念上的差異。

作爲一個經驗法則,你是安全的考慮以下等價:

表~~~實體

列~~~屬性

所以,當你需要添加新的數據塊,相對於實體(現有表),你可以問自己的問題是:

這條數據是屬性的實體嗎?

如果答案是肯定的,那麼你需要一個新的專欄。

舉例來說,假設你有一個描述學生實體的表:

Table Student: 

[PK] Id 
[FK] IdClass 
Name 
Surname 

說你也想加入每個學生的GPA。這顯然是學生的一個屬性,所以你可以在Student表中添加GPA列。

如果您希望爲每個學生定義部門,您將看到部門不是學生的一個屬性。該部門是一個實體,它存在並具有自己的屬性外部該學生的範圍。

因此,學生的屬性是隸屬於某個部門,而不是部門本身。

因此,您將創建一個新的部門表,並在Students表中使用Department.Id作爲FK。

我希望這會有所幫助。乾杯。

1

如有疑問請使用單獨的表格。

它對速度沒有如此大的影響,你會獲得更多的控制權。

1

如果您在類別和畫廊之間有一對多的關係,那麼您希望類別爲單獨的表格。

相關問題