我需要設計一個DB結構,以保留客戶通信信息記錄和某些情況下的首選通信類型。基本設計包括用於通信記錄和通信偏好的數據庫設計
- 通訊記錄:每個客戶可以有一個或多個電話號碼,地址,電子郵件地址等記錄在數據庫中。或者他們可能沒有任何定義的記錄(如他可能有一個電話號碼,但沒有在系統中定義的任何地址)
- 記錄子類型:電話號碼可以是一行或一個GSM電話號碼。地址可以是家庭或工作地址等
- 客戶的喜好:客戶將設置通信的他們的首選類型的一些情況。情況包括:
- 發送單使用的登錄密碼(隻手機)
- 發送計費信息(可以是手機號碼,電子郵件地址或普通地址。)
因此,有些偏好設置會接受某種通訊類型(僅限電話號碼)或子類型(僅限GSM電話號碼),而有些可能會接受多種類型(地址或電子郵件)
我正試圖使數據庫設計來處理這個和我t必須是一個優化的結構。
我有關於決定的結構很難。創建一個表用於具有型(電話)和分型(GSM)將有許多unnecesarry欄的所有記錄(因爲一個地址將包含類似城市和國家數據庫領域的所有通訊記錄,而電話記錄不會,雖然它需要號碼字段)爲每個創建單獨的表是更好的,但是這次我會在定義首選項表時遇到問題,因爲一些首選項只會接受一個子類型(如GSM電話),而有些會接受一種以上類型(如地址或電子郵件)
什麼將成爲這樣一個需要最好的數據庫設計方法? DBMS尚未確定,但可能是Postgresql或Oracle。
不應該'客戶ID'必須是列和'Address'表,否則我怎麼會不同所有者聯繫人或地址記錄?爲了保持數據的一致性,將'Record ID'形成'Preferences'到'Address'和'Contact'似乎更好 – FallenAngel