我正在設計一個數據庫,並且有關如何使私有某些用戶數據的問題。DB設計:如何指示列數據是公有還是私有
我有一個用戶表,其中包含名稱,城市,生日,傳記等。用戶可以將一些數據私人化(其他用戶可以看到該數據)。
首先,我想添加列到表中以指示列是否是私有的。例如:
User
-------
user_id | name | city | cityIsPrivate | birthday | birthdayIsPrivate
---------+------+------+---------------+----------+------------------
或者,另一種方法是增加一個VARCHAR列,表示這列私營:
User
-------
user_id | name | city | birthday | privateColumns
---------+------+------+----------+---------------
這privateColumns都會有這樣的:"city:NO; birthday:YES"
。
用戶表將只有三列可以是私人或公共的。我只需要在表中添加三列。
有什麼建議嗎?
用'user_id'和字段(varchar)創建一個額外的表格PublicFields。帶'user_id'的'FK'。這樣你可以很容易地擴展字段的數量,而不需要額外的編碼 – DarkBee
我喜歡@DarkBee提出的方法。必須解析privateColumns字段的想法似乎並不理想。另一張桌子是爲了! – Michael
@DarkBee感謝您的評論。而且,我需要在另一張桌子上儲存什麼?公共專欄的名稱? – VansFannel