2015-06-15 73 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)。在我看來,這在概念上更清潔,因爲執行操作的人總是訪問者,他們可能有或沒有賬戶。