我正在寫一個數據庫,將護理人員匹配到客戶端。照顧者拜訪客戶並幫助他們穿好衣服等等。因此,照顧者桌子上保存着諸如他們駕駛什麼樣的性別等信息。如果客戶想要女性照顧者,那麼我會檢查相關照顧者的性別所有的男性照顧者都將被排除在外。我用桌子開始了這條路線,但很快發現有很多問題和答案的組合。mysql table layout讓我完全困惑
我不知道這是否需要多對多的關係,但我有點失落。 任何幫助將感激地收到。
我正在寫一個數據庫,將護理人員匹配到客戶端。照顧者拜訪客戶並幫助他們穿好衣服等等。因此,照顧者桌子上保存着諸如他們駕駛什麼樣的性別等信息。如果客戶想要女性照顧者,那麼我會檢查相關照顧者的性別所有的男性照顧者都將被排除在外。我用桌子開始了這條路線,但很快發現有很多問題和答案的組合。mysql table layout讓我完全困惑
我不知道這是否需要多對多的關係,但我有點失落。 任何幫助將感激地收到。
您應該使用bridge entity來消除Carer
和Client
表之間的多對多關係。此Transaction
表格還允許您向該實體添加其他基於交易的信息,例如Driver
等等,這些信息不屬於Carer
或Client
。
事情是這樣的:
護老者
Carer_ID PK
Name
Gender
Address
Vendor_ID FK -- Assuming your individual carers are part of a network
etc... Other Carer based details
客戶
Client_ID PK
Name
Address
Gender
etc... other Client based details
交易
Transaction_ID PK
Client_ID FK
Carer_ID FK
DateTime
Location
Driver_ID FK -- Assuming you want to add a driver table
etc... Other transaction based details
作爲後續 ...我個人不贊同那些建議Entity-Attribute-Value設計。 EAV對於前端應用程序中的基本查找值可能沒有問題,但基於您的整體數據庫設計是一個非常糟糕的主意(出於完整性和維護原因)。遵循標準關係database normalization實踐併爲每個主要參與者創建實體表要好得多。
優秀.....! –
使用通用屬性值表。 – Barmar
**建議:**創建**用戶**表.....創建**角色**表並創建它們之間的關係。將各種用戶保留在用戶表中。通過以上操作,您將降低未來複雜性。 :-)(還有什麼要問?)@ user2042410 –
聽起來像是一個典型的多對多3表格的情況。 –