微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

数据库设计 – 在数据库中存储多个标志的最佳方式

我有一个基于Web的应用程序,通过电子邮件通知用户网站上的活动.用户可以选择他们想要接收哪些类型的通知.到目前为止,有大约10种不同的选择(每一种都是真/假).

我正在将它存储在一个varchar字段中,为0或1,用逗号分隔.例如:
1,1,0

这是有效的,但很难添加新的通知标志,并跟踪哪个标志属于哪个通知.这样做有接受的标准吗?我正在考虑为每个通知类型添加一个列.然后我可以添加新的列,如果我需要,但我不知道这是多么高效.

提前致谢!

解决方法

我会用两张桌子.一个表将存储用户数据,而另一个表将存储他们订阅通知.第二张表将如下所示:
create table notifications (
   user_id int,notification_type int
);

我将在user_id与用户表中的用户ID之间建立一个FK关系,并删除级联.同时使用user_id和notification_type作为主键.要检查用户是否想要特定的通知,只需在两个表之间进行连接,并选择notification_type与所讨论的对应的行.如果结果集不为空,则用户希望通知.

添加通知变得微不足道(删除).只需添加(删除)一个新的类型值,并让用户选择接受或不接受.如果您希望将通知类型保留在表中,以便通过应用程序进行管理,这些应用程序也可以工作,但是会更复杂一些.

原文地址:https://www.jb51.cc/mssql/79137.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐