2015-06-15 42 views
0

我的问题:MySQL结构完整性与简单性?

  • 在一个PHP/MySQL应用程序,我不得不从simple visitors区分registered accounts。他们都可以执行写入数据库的操作。现在我用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或我 可以把每个人都在一个表中有一个布尔isThisAccount变量 这表明无论何时该人是registered account或只是简单的 visitor

我也对不同的方法开放。

回答

1

我可能会去第三个选项:将会话链接到访问者和访问者到账户。这样,您只需要sessions表中的一个字段visitorID,并且只需要一个NULL列(accountID,visitors)。在我看来,这在概念上更清洁,因为执行操作的人总是访问者,他们可能有或没有账户。