2012-07-10 26 views
-1

好吧,所以我將有至少2個表,可能三個。正確的數據庫設計爲這個任務

數據將如下:

首先,搜索項的列表。這些搜索條件與程序中的其他任何內容無關(只涉及獲取輸出,根本不處理這些數據),因此我打算將它們分別存儲在自己的表中。

然後事情變得更加棘手。我有一個單詞列表,每個單詞可以有多個類別。例如,如果你有「悲傷」,它可能處於「焦慮」和「悲劇」之下,就像「快樂」可能在「喜悅」和「成就」之下一樣。

建立一個表格,我有三列:一個UID,一個單詞和一個類別,還是最好設置兩個表格:兩個都帶有UID,一個帶有單詞,一個與類別,並將其設置爲外鍵?

最終的作用是在給定的時間段內生成給定類別中的單詞數量。

我會使用MySQL和Python(MySQLdb),如果這有助於任何人。

+1

沒有冒犯,但我認爲你應該已經開始原型查詢,而不是你的數據。如果你只有一個模糊的(你的'終極角色'聲明)描述你將如何使用這個數據庫,你怎麼能(和如果被要求幫助)設計數據庫模式?例如,「在特定時間段內」意味着什麼? – raina77ow 2012-07-10 10:47:43

+0

不確定我同意。他似乎知道他想要什麼,但也許不習慣寫技術規格。 – carpii 2012-07-10 10:53:14

+0

使用代理鍵只是減緩了這一點 - 他們不需要 – symcbean 2012-07-10 10:56:06

回答

0

忽略你的「搜索字詞」表(因爲它似乎沒有任何相關的問題),我可能會做類似這樣的

words (w_id int, w_word varchar(50)) 

categories (c_id int, c_category) 

wordcategories (wc_wordid int, wc_catid int) 

從IDS添加外鍵約束在wordcategories,到單詞和類別表

0

而不必一大堆的細節,我將它設置方式如下:

Word Table 
id int PK 
word varchar(20) 

Category Table 
id int PK 
category varchar(20) 

Word_Category Table 
wordId int PK 
categoryId int PK 

第三是單詞和類別之間的連接表。該表將包含單詞和類別表的外鍵約束。

+0

downvoter謹慎解釋? – Taryn 2012-07-10 10:57:35

+0

也低估了原來的問題。有些人* * – carpii 2012-07-10 10:59:03

+0

我做了 - 只是沒有打擾重複自己(不是我誰低估了這個問題) – symcbean 2012-07-10 13:25:42