我是數據庫的新手,但我已經瀏覽了一些教程並學習了大部分基本知識(我是一個很長時間的程序員)。但是,我需要一些幫助來解決關係數據庫的侷限性。如果我有一個畫面,我可以爲它創建一個簡單的表作爲這樣整個表的mysql外鍵
"CREATE TABLE picture(
file VARCHAR(150),
rating INT
)";
如果我想跟蹤誰在圖片的價格,我既可以硬編碼的預設號碼,像這樣的選民(在此例如3次匿名投票)
"CREATE TABLE picture(
file VARCHAR(150),
rating INT,
vote1 INT,
vote2 INT,
vote3 INT
)";
或者無限數量的,我可以創建新表這樣
"CREATE TABLE ratingTemplate
(
rater INT,
rating INT
)";
但針對畫面中的表中的每個畫面進入我希望有這整個的引用[R atingTemplate表。有沒有適當的方式來使用外鍵來實現這一點?目前,我通過創建新的評分模板表並確保將其名稱存儲在相應的圖片表條目中對其進行微操作。
我看你做了什麼沒有。出於某種原因,我從來沒有想過它。您將所有評級放入RATING表中,並使用主要(外國)密鑰爲圖片和用戶查詢正確的評級子集。這對搜索速度有什麼影響?對於專用(但是微管理)的表格,搜索時間爲零,而對於所有N個條目都必須進行搜索,是正確的?更重要的是,SQL的搜索速度有多快,例如1,000,000行?謝謝 – puk 2011-03-19 15:10:51
外鍵需要picture_rating表中的索引,因此執行搜索實際上相對較快,對於1,000,000行,您可以在查找所需的行之前進行5或6次查找。 – 2011-03-19 15:34:17
太棒了,這就像一個魅力。但是我注意到你應該添加PICTUR_RATING或其他任何其他的引擎,否則你不包括'ENGINE = InnoDB'?謝謝。 – puk 2011-03-19 15:42:00