我知道这个问题已被多次询问和回答,并且我花了很多时间阅读以下问题:
问题在于,对于几类解决方案,支持者的分布似乎有些均匀:
- 只要标准化,就将用户设置粘贴在单个表中
- 将其拆分为 1 比 1 的两个表,例如“users”和“user_settings”
- 用某种键值系统概括它
- 以位域或其他序列化形式粘贴设置标志
因此,冒着提出重复问题的风险,我想描述一下我的具体情况,并希望得到更具体的答案。
目前我的网站在 mysql 中有一个用户表,大约有 10-15 列(id、name、email、password...)
我想为是否为不同类型的事件(notify_if_user_follows_me、notify_if_user_messages_me、notify_when_friend_posts_new_stuff...)发送电子邮件警报添加一组针对每个用户的设置
我预计将来我会很少为每个用户添加一项设置,这些设置主要是与用户一对一的设置。
我倾向于创建第二个 user_settings 表并在其中粘贴“非必要”信息,例如电子邮件通知设置,以使主用户表更具可读性,但很想听听预期会说什么。