2011-06-26 58 views
1

將所有用戶信息包含在一張表中是不是一個好主意?有一個users表和user_profiles表是否是一個好主意?數據庫:用戶配置文件

哪種方法最好,爲什麼?

在什麼情況下你會使用一個/兩個表?

回答

3

如果這些表之間的關係是一對一的關係,我會有一個表。如果關係是一對多關係(一個用戶可以有多個配置文件),那麼顯然這些關係應該被拆分。

拆分表的另一個原因可能是權限管理 - DBA更容易限制對一個表的權限並授予另一個表。我仍然擁有一張限制權限的表格和一個列數有限的公共視圖。

我繼承了一個系統,其中這兩個表分裂時沒有很好的理由。總是加入這些表是一件痛苦的事情。最後,你最終有一個看法,並問自己爲什麼分裂是在第一個地方。

1

我通常有一個人表和一個用戶表。用戶表包含所有用戶信息(用戶名,密碼(加密)等)。人名錶等名稱

+0

好的,但是爲什麼? OP詢問哪種方法最好,以及何時使用每種方法。 – CesarGon

0

我同意夏季。我沒有看到將所有信息都放在同一個表中的問題。

將所有內容放在一張表中的好處是,您在運行數據庫查詢時不必執行連接等操作。這意味着你的應用程序運行得更快。

+0

那麼你爲什麼會有兩個?這似乎是非常標準的做法...... –

+2

在我作爲程序員的3年中,我瞭解到標準實踐並不總是平等的;)但是,如果你有大量的用戶信息,再擔心它會變得無法自拔。你擔心什麼「用戶」信息?我同意Summer的個人/用戶系統。 –

+0

我沒有通讀所有這些內容,但請查看#5:http://www.simple-talk.com/sql/database-administration/ten-common-database-design-mistakes/(在數據庫中,規範化過程作爲分解和隔離數據的手段,它使每一個表達到一行代表一件事情的地步)。因此,它考慮了是否可以將用戶分解成單獨的東西。我從來沒有遇到過把它分解的情況。 –

相關問題