2015-05-21 73 views
0

我在php中使用cakePHP框架連接到mySql數據庫的小應用程序。添加新用戶的mySQL表結構表

我有兩種類型的用戶(業務和員工)與其他表的關係也。我現在添加一個登錄設施,這意味着我將添加一個用戶表來保存密碼的詳細信息。所以員工和企業都可以登錄。

我不知道用什麼方式添加用戶表和企業和員工表之間的關係。我也將添加管理員角色。

我現在的表是: - course_files - course_modules - 課程 - courses_employees - 員工 - 企業

我的選擇:

  1. 合併的企業和員工表的用戶和有一個
    • 用戶(id,角色employee_name,business_name,business_address等)
    • 角色(管理員,員工,業務)

我的這種方法的問題是,對於企業和員工等領域有很大的不同,因此用戶表將有很多領域。但它會使登錄功能更容易。

  1. 將business_id和employee_id添加到users表中。這個選項會涉及更多一點,並且一個字段將永遠像employee_id一樣空白。

    • 用戶(ID,EMPLOYEE_ID,business_id,角色)
    • 角色(管理員,員工,業務)
    • 員工(business_id)
    • 企業之前,我

所以沿着一條路線走,發現我走錯了方向我想知道什麼是最佳做法?

+1

你應該決定什麼是'主要'。在我公司的數據庫中,所有個人都屬於(至少)一個組織。因此,如果我們首先將該個人的組織與該項目關聯起來,那麼個人只能與項目相關聯。在某些情況下,這些個人只是私人客戶,以個人身份行事,而不是通過某個組織的機構行事。在這種情況下,他們只屬於一個名爲「project_client_body」的組織。 – Strawberry

+0

嗨草莓,你存儲密碼是哪張桌子? –

回答

2

我不同意你的兩種方法。我將擁有一個用戶登錄表,以及用於員工和企業的表,就像您在第二種方法中所建議的一樣。區別在於,我不會在用戶中擁有employee_id和business_id,因爲正如您已經指出的那樣,其中一個將始終爲空。你爲什麼不在兩個表中都有一個user_id,因爲它們總是有一個用戶配置文件(用於登錄)?我看你使用CakePHP,所以這將是關係如下:

User hasOne Employee 
User hasOne Business 
Employee belongsTo User 
Business belongsTo User 

讓我知道,如果你的應用程序的任何其他業務規則,使我的做法難以實施。

+1

謝謝。這對我來說很有意義,我會朝那個方向努力 –

+0

很高興幫助! – lucasnadalutti