Hen*_*son 3 database database-design
我关注的用户可以是"未经证实"或"已确认".后者意味着他们获得完全访问权限,前者意味着他们在主持人批准后待审.我不确定如何设计数据库来考虑这种结构.
我有一个想法是有两个不同的表:confirmedUser和unconfirmedUser非常相似,只是unconfirmedUser有额外的字段(例如"emailConfirmed"或"confirmationCode").这有点不切实际,因为当用户被接受时我必须复制所有信息(虽然我想它不会那么糟糕 - 不要期待繁忙的流量).
我想象的第二种方式是实际将所有用户放在同一个表中,如果需要,可以使用额外的"未经证实的"数据来获取表的密钥(也许还可以在用户表中添加"已确认"标志).
每种方法的缺点有哪些优点,是否有更好的方法来设计数据库?
第一种方法意味着您需要为两个表编写每个查询 - 用于所有常见的事情.坏(tm).第二种选择肯定更好.这样,您可以where confirmed = True
根据特定访问要求添加简单(或False).
您实际可以思考的是,确认的数据(不是用户,只是数据)是否存储在同一个表中.将所有确认数据放在一个单独的表中可能更清晰+规范化,以便您left join confirmation on confirmation.userid = users.id where users.id is not null
(或类似或内部联接,或者在服务器端脚本中获取所有+过滤器等)仅获得确认的用户.确认电子邮件,日期等附加数据可以存储在此处.
归档时间: |
|
查看次数: |
872 次 |
最近记录: |