我正在使用SQL Server 2008.我的問題是關於關係數據庫設計。 我得到了以下表格和關係:添加數據庫關係以減少連接並提高性能
合同:我與勞動者有1-M關係。我們預計有一半 一百萬合約。合同是雙方之間的商業合同。
勞動者:每組勞動者都屬於一份合同。我們預計有 百萬勞動力。
消息:預計將包含數百萬條記錄。信息被髮送到 合同方關於合同和勞工。
MessageContract:消息和合同之間的橋接表,並且 預計有數百萬條記錄。
MessageLaborer:Message與Laborer之間的橋表, 預計有數百萬條記錄。
處理:與消息具有1-M關係。預計最終會有 數十萬條記錄。
我的問題是,除了Process和Message之間的關係外,我是否可以在Process和MessageContract和MessageLaborer之間添加一個關係,所以當查詢合同和勞工正在處理時,我不必添加一個帶有Message的連接。
另一個示例:MessageLaborer與MessageContract具有間接關係。在任何時候,您可以通過查詢數據庫來獲取每個合同消息下的勞動者,但是您需要4個連接來完成此操作。另一個選項是在MessageLaborer和MessageContract之間創建另一個關係,所以你只需要一個連接。
這是常見做法還是常見錯誤?
這聽起來像是一個錯誤。爲簡單地減少連接而添加一個關係可能是非規範化,也可能是現在正在建模不同的邏輯的一種變化。 – Randy