gpt4 book ai didi

database - 如何更好地组织数据库以说明用户状态的变化

转载 作者:太空狗 更新时间:2023-10-30 01:59:01 25 4
gpt4 key购买 nike

我关注的用户可以是“未确认”或“已确认”。后者意味着他们获得完全访问权限,而前者意味着他们正在等待主持人的批准。我不确定如何设计数据库来解释这种结构。

我曾想过有 2 个不同的表:confirmedUser 和 unconfirmedUser,它们非常相似,除了 unconfirmedUser 有额外的字段(例如“emailConfirmed”或“confirmationCode”)。这有点不切实际,因为当用户确实被接受时我必须复制所有信息(尽管我认为它不会那么糟糕 - 预计流量不会很大)。

我想象的第二种方式实际上是将所有用户放在同一个表中,并在需要时使用带有额外“未确认”数据的表的键(也许还在用户中添加一个“已确认”标志表)。

每种方法的优点和缺点是什么?是否有更好的数据库设计方法?

最佳答案

第一种方法意味着您需要为两个表编写每个查询 - 对于所有常见的内容。不好(tm)。第二种选择肯定更好。这样您就可以根据特定访问的需要添加一个简单的 where confirmed = True(或 False)。

其实你可以考虑的是确认数据(不是用户,只是数据)是否存储在同一个表中。将所有确认数据放在一个单独的表中可能会更清晰 + 规范化,因此您 在 confirmation.userid = users.id 上留下加入确认,其中 users.id 不为空 (或类似的,或内部联接,或在服务器端脚本中获取所有 + 过滤器等) 以仅获取已确认的用户。确认电子邮件、日期等附加数据可以存储在这里。

关于database - 如何更好地组织数据库以说明用户状态的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12096015/

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