2010-04-08 95 views
0

我們有三種類型的數據(表):最佳的數據庫(MySQL的)結構,這種情況下:

  • 書(ID,姓名,作者...)(約3排萬元)
  • 類別(ID,姓名)(約2000行)
  • 位置(ID,姓名)(約10000行)

一本書必須至少有1種型類別(最多3個)和一本書絕只有一個位置。

我需要這個數據關聯到這樣的語句更快:

選擇圖書類別爲「CAT_ID」和位置=「loc_id」

選擇書籍,其中匹配(名稱)對('的名字書')和位置='loc_id'

請我需要一些幫助。 謝謝

+2

你是說表已經存在,你需要一個有效的查詢?或者你想知道如何有效地製作表格? – MJB 2010-04-08 13:24:23

+0

如何製作表格,如何關聯它們,用右鍵快速查詢。 – robert 2010-04-08 13:27:43

回答

1

有另外一個表,比如bookscategories,它有'id,bookid,categoryid'作爲字段。

使用此功能將書籍映射到類別。

您的原始查詢不會受到影響,因爲第一個查詢需要一個特定類別和位置的書籍,第二個查詢需要符合標題和一個位置的書籍。

+0

嗯......如果我做這個表: | ID | BOOK_ID | CAT_ID | LOC_ID | 查詢將如何與NAME和LOC_ID匹配? – robert 2010-04-08 13:59:27

+0

我同意zaf。製作額外的桌子,然後嘗試一下。我沒有具體說我的答案 - 我想我應該有。 – MJB 2010-04-08 13:59:27

+0

@robert:不要那張桌子。 Loc_Id應該在BOOKS表中,而不是BOOKCATEGORY表中。 – MJB 2010-04-08 14:02:39

0

隨着表的這種大小,我認爲這是中型(不小,不大),它是更有可能的指標,將有所作爲。正確創建表並正確連接它們(在索引的主鍵和外鍵上),並且性能應該沒問題。

+0

是的,但如何關聯他們......我的意思是一本書可以有3個差異類別,我把這些ID?在書桌或我需要另一個表來關聯它們? 書本 - > Category_ID1書本 - > Category_ID2書本 - > Category_ID3也 書本 - > LOCATION_ID – robert 2010-04-08 13:38:40

相關問題