天天看點

關系資料庫一對一關系模式應用示例

關系資料庫中,一對多關系使用的非常普遍,多對多關系也時有用到,而一對一關系用的非常之少,本篇将展示一個一對一關系的使用示例。

首先我們有這樣一個資料庫:

這是一個簡單的商業資料庫,現在有一個需求:要求使用者可以上傳多個圖檔以展示商品、商鋪、市場、品牌,那麼怎麼設計呢?

首先想到的是為每個表追加一個附屬表用于專門存儲圖檔,那麼先建立市場照片表:

接着是商鋪照片表:

馬上你就會發現這樣備援很多,并且假如新增了一個網店表,那麼還得為其增加網店照片表,假如對照片記錄的資訊不滿意,想添加一個等寬縮略圖字段,那麼得修改所有的照片表,這無疑是痛苦的。

那麼我們可以考慮把照片單獨提出來作為一個表,統一存放,然後建立映射表用于存放各表的映射,以形成多對多關系:

這樣我們就可以在照片表内肆意存放各類資訊,而不用擔心重複勞動了。

不過得細想一下現在的關系:一個品牌可以有多個照片;一個照片可以被多個品牌使用。

這不太符合我們的意圖,照片是不能被其他品牌盜用的,那麼解決辦法就是将映射表中的照片設為主鍵,使之不會重複,那麼映射表和照片表之間的關系就會自動變為一對一關系:

這時照片和品牌的關系就變成了零或一對多關系,之是以是零或一,是因為照片表裡的照片不一定總是對應到品牌表的。

其他映射表也應該按照此方法修改,才真正達到我們的設計要求。

完成後的總覽:

示例資料庫下載下傳:

本文轉自斯克迪亞部落格園部落格,原文連結:http://www.cnblogs.com/SkyD/archive/2009/05/28/1491214.html,如需轉載請自行聯系原作者