gpt4 book ai didi

database-design - 在数据库中存储多个标志的最佳方式

转载 作者:行者123 更新时间:2023-12-03 23:16:32 25 4
gpt4 key购买 nike

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

我目前将其作为用逗号分隔的 0 或 1 存储在一个 varchar 字段中。例如:
1,0,0,0,1,1,1,1,0,0

这有效,但很难添加新的通知标志并跟踪哪个标志属于哪个通知。这样做是否有公认的标准?我正在考虑为每个通知类型添加一个带有一列的表。然后我可以根据需要添加新列,但我不确定这有多有效。

提前致谢!

最佳答案

我会用两张 table 。一张表存储用户数据,另一张表存储他们订阅的通知。第二个表看起来像这样:

create table notifications (
user_id int,
notification_type int
);

我会在 user_id 和用户表中的用户 id 之间建立 FK 关系,并在删除时使用级联。使用 user_id 和 notification_type 作为主键。要检查用户是否需要特定通知,只需在两个表之间进行连接并选择 notification_type 与相关的行匹配的行。如果结果集非空,则用户需要通知。

添加新通知变得微不足道(就像删除一样)。只需添加(删除)一个新的类型值并让用户选择是否接受它。如果您想将通知类型保存在一个表中,以便通过也可以工作的应用程序进行管理,但它会稍微复杂一些。

关于database-design - 在数据库中存储多个标志的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/206970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com