【发布时间】:2009-11-07 17:47:10
【问题描述】:
只是寻找一些关于如何最好地做到这一点的意见/想法。
我正在构建一个由管理员手动添加用户的外联网系统(某人无法“注册”自己)。当他们被添加时,只输入了少量的强制性数据(姓名、电子邮件、密码),然后通过电子邮件将他们的登录信息发送给他们,当他们第一次访问系统时,他们会被要求提供额外的强制性详细信息,这些信息必须在被给予之前完成访问整个网站。
我可以想到三种在数据库中定义它的方法:
将所有必填字段设置为 NOT NULL 在数据库中,并输入空字符串 对于所有“有条件 必填”字段创建时 用户(我不喜欢这个,似乎 哈克)
仅设置初始强制 数据库中的字段不为空,并且 为所有的输入 NULL “有条件的强制性”字段 创建用户时(我不喜欢 这虽然在技术上是正确的,但 架构不会反映真实的 世界用户实体,其中所有 数据是强制性的)
有两张表,一张给新用户, 和一个完整的用户(起初 乍一看这似乎是最好的 选项,但是其他表需要 有指向 用户表,这将 使事情复杂化/使事情变得不可能)
有什么想法吗?
干杯,
杰克
编辑
所以看起来 2 号将是最好的方法,使用定义记录状态(新/完整)的字段以及检查约束或触发器来检查是否所有“可选强制”字段都有价值。我猜检查约束将是最合适的选择,但我会试一试,看看哪个效果最好。谢谢。
【问题讨论】:
标签: mysql database database-design