我知道这个问题已被多次询问和回答,我花了相当多的时间阅读以下问题:
问题在于,几类解决方案的支持者似乎有点均匀分布:
因此,冒着提出重复问题的风险,我想描述一下我的具体情况,并希望得到更具体的答案。
目前我的网站在mysql中有一个用户表,大约有10-15列(id,name,email,password ......)
我想添加一组每用户设置,以确定是否针对不同类型的事件发送电子邮件警报(notify_if_user_follows_me,notify_if_user_messages_me,notify_when_friend_posts_new_stuff ...)
我预计将来我很少会为用户添加一个用户设置,大多数是1比1。
我倾向于创建第二个user_settings表并在那里粘贴“非必要”信息,例如电子邮件通知设置,以保持主用户表更具可读性,但非常好奇听到预期的内容说。
答案 0 :(得分:1)
似乎您的困境是垂直分区用户表。您可能需要阅读 this SO Q/A too 。
答案 1 :(得分:0)
我要投票支持添加两张桌子......(某些sota键值系统)
最好(对我来说)添加数据而不是列...所以,
添加一个将用户链接到设置的新表,然后为设置添加一个表...
这些东西:notify_if_user_follows_me,notify_if_user_messages_me,notify_when_friend_posts_new_stuff。然后将成为带有id的行插入,您可以随时引用它们并根据需要扩展它们而不更改架构。