数据库设计
例如,我有表 users
,其中有 3 个字段:
id - login - password
---------------------
1 | john | *****
2 | jack | *****
3 | jane | *****
现在我希望每个用户都可以有自己的设置。 那么,我是否需要创建三个不同的表,例如
user_N_settings
:
id | key | value
-------------------------
1 | save_data | True
或者我应该为所有用户创建一个大表?
用户设置
:
id | key | value | user_id
---------------------------------------------
1 | save_data | True | 2
2 | some_opt | False | 3
for example i have table users
, which have 3 fields:
id - login - password
---------------------
1 | john | *****
2 | jack | *****
3 | jane | *****
now i want that each user could have his own settings.
So, do i need to create three different tables, like
user_N_settings
:
id | key | value
-------------------------
1 | save_data | True
or i should create one big table for all users instead?
users_settings
:
id | key | value | user_id
---------------------------------------------
1 | save_data | True | 2
2 | some_opt | False | 3
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
一张表供所有用户使用。每个用户一个表将是非常错误的。
One table for all users. A table per user would be very wrong.
一张桌子。如果所有设置值都属于同一类型,那么为每个设置创建一行可能是有意义的。如果属性差异很大,则为每个设置创建一列。
One table. If all the setting values are of the same type then it may make sense to create one row per setting. If the attributes are all very different then create one column per setting.