簡體   English   中英

數據庫結構 - 帶有 category_id 的單設計表(多行)或多設計類別表(幾行)

[英]Database structure - Single design table with category_id (Many rows) or Multiple design category tables (Few rows)

我有一個用於設計多個類別的數據庫模式,所有類別都具有相同的結構。 有兩種情況,我不確定要根據性能選擇哪一種。

  1. 單表:1個主表(Categories),1個設計表(category_id),2個與設計相關的表(標簽和顏色)和1個與label_color相關的表。 可能有大約 20 個類別,每個類別至少有 100 個設計,每個設計至少有 20 個標簽和 10 種顏色。 所以一共4張表,label_color關系表下界大約有40萬條記錄。

  2. 多個表:1個主表(類別),每個類別的設計表(category1_designs,category2_designs ...)以及與category1_design相關的標簽和顏色表和將標簽與顏色相關的label_color表。 使用與之前相同的估計,每個設計有 20 個類別和 4 個相關表,需要維護 80 個表(加上主類別表)。 此外,為了從特定類別中獲取設計或在特定類別中添加設計,服務器將有一個切換案例場景,以便它從正確的類別中獲取記錄,使其剛性和硬編碼。 此外,添加新類別意味着為該類別手動創建 4 個新表。 下限僅為 20000 行,但分布在 20 個表上。

我正在使用帶有 InnoDB 引擎的 MySQL 數據庫,那么考慮到性能和可擴展性,哪種方法更適合實現這個概念? 另請注意,寫入操作不會很頻繁,並且這些表只會專門用於讀取和覆蓋。

1. 單(類別)表。 這就是我會這樣做的方式,並且已經多次看到它。 使用許多類別表進行反規范化將難以維護,並且需要大量復制/粘貼或生成的字符串查詢。

每個非關聯表的最大行數為 100,只要您的查詢和索引匹配,性能就無關緊要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM