MySQL结构完整性与简单性?

时间:2015-06-15 23:56:04

标签: php mysql foreign-keys referential-integrity

我的问题:

  • PHP/MySQL申请表上,我必须将registered accountssimple visitors区分开来。它们都可以执行写入数据库的操作。现在我为visitors使用单独的表格,为registered accounts.
  • 使用单独的表格

到目前为止我的示例解决方案:

  • 选项#1: Registered accountsvisitors分为两个表。都 他们可以sessions,表之间的关系是。{ non-mandatory,因为某人是visitorregistered accountenter image description here

    选项#2:每个人都在一个表格中,表格之间的关系是强制性的,因为每个人都可以拥有sessions,但由于某人是visitorregistered account,他可能没有emailpassword,因此可以为NULL。这可能会导致完整性错误。

enter image description here

我的问题:

  • 我应该将accounts放在与visitors或我单独的表格中 可以将每个人放在一个包含BOOLEAN isThisAccount变量的表中 表示该人是registered account或只是一个简单的人 visitor

我也对不同的方法持开放态度。

1 个答案:

答案 0 :(得分:1)

我可能会选择第三种方式:将访问者和访问者的会话链接到帐户。这样,您只需要visitorID表中的一个字段sessionsNULL中只有一个accountID列(visitors)。在我看来,概念上更清晰,因为执行操作的人总是访问者,可能有也可能没有帐户。