我正在一个专注于特定利基的社交网站上工作,我对存储用户个人资料信息有疑问。虽然我希望用户能够存储性别,职业,喜欢,不喜欢等信息,但我也希望这样做,如果我想在将来添加任何更多的个人资料字段,我可以做很容易,甚至可能通过管理界面。
这是我到目前为止构建的数据库模式:
用户
ProfileFields (这会存储“性别”,“职业”等字段,以及期望的输入类型:文本,列表,复选框,单选按钮等。)
ProfileFields_Presets (这将存储任何给定的ProfileFields条目的预设可选值,仅当 value_type 为list,dropdown,checkbox或radio时才会有条目)
User_ProfileFields (这将存储各种ProfileFields条目的用户输入)
“性别”等配置文件字段(具有用户可以选择的预设值)将实现ProfileFields_Values数据库(用于存储预设值),而“职业”等字段(通常是开放式的)将会不
基本上,我只是想知道这是否足够。通过这种方式可能会出现任何问题吗?
另外,哪个在上面的Users_ProfileFields表中效率更高?只有一个* user_value *字段,可以存储外键ID或自定义输入?或者将它们分成* user_value_id *和* user_value_text *,其中两个中的一个总是为空,而另一个用数据填充?
答案 0 :(得分:1)
我会保持原样。我将分离到user_value_id然后分离user_value_text。 User_value_id是一个键