Sql-Server

僅具有單個子實體的 IS-A 關係

  • December 12, 2015

您好我正在嘗試為字典設計數據庫。這些詞有幾個領域,比如意義、例子,也許還有一張圖片。但是“動詞”這個詞還有另外三個特殊欄位,其餘的則沒有。那麼這是一艘 Is-A 關係船嗎?但我嘗試了這個:

我製作了一個包含所有共享欄位和一個類型欄位的單詞表,以及一個動詞表。這兩個表具有一對一的關係。動詞表只有特殊欄位和外鍵。因此,如果使用者只想搜尋一個動詞,他/她需要從所有具有“type == verb”的單詞中進行搜尋。這是一個好主意嗎?請幫助我如何設計這個,在此先感謝。

我不會為動詞創建另一個表,因為大表(尤其是同一查詢中的多個表)上的連接操作可能很昂貴。我將創建一個表,其中包含共享欄位和非共享欄位,並添加另一列“isverb”,將其設置為 1 表示動詞,0 表示非動詞。您也可以稍後添加“isadjective”等。

在這種情況下,這樣做很有意義:

SELECT * FROM words where isverb = 1

而不是:

SELECT * 
FROM words w 
INNER JOIN verbs v ON w.type = v.id 
WHERE w.type = 2

該應用程序是一本字典。所以它只寫一次,讀無數次,所以我個人認為不需要復雜的數據庫設計。您基本上只需要非常快速的讀取,無需連接到多個表即可實現

引用自:https://dba.stackexchange.com/questions/123230