我的问题:
在PHP/MySQL
应用程序上,我必须将registered accounts
与simple visitors
区分开。他们两个都可以执行写入数据库的操作。现在,我为visitors
使用单独的表,为registered accounts.
使用单独的表
到目前为止,我的示例解决方案是:
选项#1:Registered accounts
和visitors
分为两个表。都
其中可以有sessions
并且表之间的关系是non-mandatory
,因为一个人是visitor
或registered account
。
选项2:每个人都在一个表中,并且表之间的关系是强制性的,因为每个人都可以拥有sessions
,但是由于一个人是visitor
或registered account
,因此他可能没有email
或password
,因此可以为NULL。这可能会导致完整性错误。
我的问题:
我应该将accounts
与visitors
放在单独的表中还是
可以使用BOOLEAN isThisAccount
变量将每个人放在一张表中
表示该人何时是registered account
还是简单visitor
?
我也对不同的方法持开放态度。
最佳答案
我可能会选择第三个选项:将会话链接到访问者并将访问者链接到帐户。这样,您只需要visitorID
表中的一个字段sessions
和一个NULL
列(accountID
中的visitors
)。我认为从概念上讲这是更清洁的方法,因为执行操作的人员始终是访客,他们可能有也可能没有帐户。
关于php - MySQL结构完整性与简单性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30856825/