2014-02-21 94 views
0

我是mysql數據庫設計的新手。我正在開發一個小型應用程序,用於使用php和mysql來處理我的Web開發客戶。這個想法是處理和管理所有客戶的項目。Mysql php,針對不同項目類型的不同表格

我截至目前數據庫: 客戶

  • cus_id
  • FULL_NAME
  • 電子郵件
  • 電話
  • 日期

項目

  • PROJECT_ID
  • cus_id
  • project_type
  • 日期
  • 狀態

現在,這裏的項目類型可以是不同類型的,例如:網頁設計,標誌設計,搜索引擎優化, ppc,宣傳冊設計等。

我需要分別管理每個項目類型。對於例如:網頁設計表可以有不同的標誌設計表值。

我的問題是「我應該爲每個項目類型創建一個單獨的表」如果是的話如果我需要添加額外的項目類型未來。爲每個項目類型添加額外的表格。請幫忙。

我的項目管理將是這樣的

Customer | Project type | details 
--------------------------------- 
abc xyz | web Design | manage 
efg uvw | logo design | manage 

一個客戶可以有多個項目一樣,網頁設計,標誌設計等。每個項目都有自己的值表。既然是這樣,我的問題是我應該爲每個項目tye創建一個單獨的表格,如table-webdesign,table-logodesign,table-brochuredesign等。

回答

0

整體而言,這可能是最好有一個project_central表具有公共屬性id, title, type, percent_complete, date_started, status,然後創建特定的字段輔助表,因爲它們涉及到項目的類型,以便web_projects將有project_central.id, site_name, server_languagelogo_projects可能有project_central.id, primary_colors, artist_name

隨着您添加項目類型,這將在未來更具規模性。由於行不是正確的項目類型,故通常不建議故意產生空值。第一段

更容易視圖:

  • project_central

    • ID(PK自動增量)
    • 標題
    • 類型
    • PERCENT_COMPLETE
    • date_started
    • 狀態
  • web_projects

    • project_central.id(FK)
    • SITE_NAME
    • server_language
  • logo_projects

    • project_central.id(FK)
    • primary_colors
    • 這位演出
+0

宙斯,我沒有得到什麼是輔助表?對不起,如果Iam錯了,Iam新來這個。是否與創建單獨的表web_projects,logo_projects相同? – user3335843

+0

在此背景下*輔助*表示「相關」。因此,您擁有保存公共數據的主表,然後相關表將保存每個項目類型的特定數據。你的主要語言是什麼?互聯網上有很多定義。 – MonkeyZeus

+0

這很好,我和其他一些名字混淆了。 – user3335843

0

問題的答案歸結爲數據的差異適用於每個項目類型。如果你希望有明顯不同的數據列,那麼你想考慮單獨的表。但是,如果大多數數據是相同的,則一張表就足夠了。

例如,如果所有的項目都會有估計的小時數,花費的時間,成本估算等等,並且只會有所不同,logodesign有一個消費類專欄,網頁設計有蘇打水消耗,它通常更簡單如果它是一個網頁設計項目,那麼可以使用單個表和空值來填充羽毛筆。

+0

是的,克里斯,我同意你的看法。這裏的網頁設計表與其他表不同,因此如果我爲每個項目創建一個單獨的表格,我沒有靈活性來在將來添加更多的項目類型,因爲表格會增加。不過,我針對這個應用程序進行網頁開發人員維護。你有什麼建議? – user3335843

+0

隨着新項目類型的添加,未來無法添加表格。既然你說他們攜帶顯着不同的數據,他們將需要建立額外的應用層代碼。 –

相關問題