2013-06-02 56 views
0

該數據庫將用於記錄用戶物質使用情況。因此,用戶將能夠輸入他們確定某一物質的日期,實際物質以及在該特定會話中完成的物質的量。數據庫將用於統計/圖表/圖表。表格正確的方式?

目前我只有2張桌子。用戶和記錄。記錄表具有以下值;

RECORD_ID,物質,date_use,量邀請,USER_ID

的許多物質會明顯由相同或不同的用戶重複。

當記住我將要並計劃使用它來創建統計數據時,這是組織數據的最佳方式嗎?數據庫組織技巧上的任何鏈接?

+1

如果您允許用戶以自由形式將該物質輸入到文本字段中,則可能會出現很多拼寫錯誤的記錄,這些記錄很難搜索到。如果您事先知道可能的物質名稱,則可能需要創建另一個物質表並通過ID引用它。 – JadedCore

+0

謝謝,我想我會有一個預定的列表,然後允許用戶請求添加到列表中的物質。 – user2444539

回答

0

你會想沿着這個線的東西:

  • 物質
  • 用戶
  • substances_users

你要使用hasMany Through associations

其中'substances_users'有user_id,substance_iddate_used字段。

通過這種方式,您可以設置一系列可避免重複的物質表,並讓您更輕鬆地創建統計信息。

+0

我明白你在說什麼,但同時我不明白爲什麼。因此,不是我目前的系統,我只列出了物質,我將有一個物質_ID字段,將與id物質的「物質」錶鏈接? 是減少數據庫上的文本存儲量,這將使它更有效的唯一的一點?或者還有其他原因? – user2444539

+0

因爲將表中的文本數據保留在一個表中允許次要的名稱不一致,產生可用數據的麻煩等等等等。如果您有一個物質表,您還可以使用諸如「record_count」(和CakePHP的counterCache)來跟蹤每種物質的許多記錄等等。如果這些物質只是連續的文本...... yuck。糟糕的db設計imo。或者輕鬆找到所有擁有X物質記錄的用戶。只是讓整個事情變得更容易管理,使得許多不同種類的數據更容易拉動......等等等等。 – Dave

+0

如果我不能將我的物質列入預定列表,該怎麼辦? 例如品牌,你可以列出一些頂級品牌,但列出所有存在的基本上是不可能的。 – user2444539