我有一個存儲用戶信息的表用戶 - 如姓名,出生日期,地點日期等關係數據庫設計(MySQL的)
我還創建了一個鏈接表稱爲User_Options - 用於存儲的目的多值屬性 - 這基本上存儲複選框選擇。
我有一個前端形式供用戶填寫並創建他們的用戶配置文件。下面是我創建生成的複選框選項表:
Table User_Attributes ===================== id attribute_name --------------------- 1 Hobbies 2 Music
Table User_Attribute_Options ====================================== id user_attribute_id option_name -------------------------------------- 1 1 Reading 2 1 Sports 3 1 Travelling 4 2 Rock 5 2 Pop 6 2 Dance
所以,前端表格上有兩套複選框選項 - 對於愛好一套和音樂一組。
而這裏是在用戶表:
Table User ======================== id name age ------------------------ 1 John 25 2 Mark 32
Table User_Options ================================================== id user_id user_attribute_id value -------------------------------------------------- 1 1 1 1 2 1 1 2 3 1 2 4 4 1 2 5 5 2 1 2 6 2 2 4
(在上表中「user_attribute_id」是父屬性和「價值」的ID是屬性選項的ID)。
所以我不確定我是否正確或有效地完成了所有這些工作。我知道有一種在同一個表中存儲分層數據的方法,但我更願意將事物分開。
我主要關注的是User_Options表 - 這個背後的想法是,只需要一個鏈接表來存儲多值屬性,而不是每個多值屬性都有一個表。