Mysql
可以為不同的實體設置多個文件表嗎?
我有兩個實體 A 和 B。
A 和 B 可以有多個與之關聯的文件,每個文件都可以是 a
document
或image
.創建具有以下結構的表
a_files
是否有意義?b_files
id | a_id | url | type(enum)
id | b_id | url | type(enum)
我也考慮過創建一個通用
files
表,然後通過 引用它a/b_files
,但在我看來,這似乎是一種過度殺戮的連接。
如果您的兩個表在結構上完全相同,那麼它們很可能應該是一個表。您的帶有兩個單獨表的範例似乎是多餘的,因此從長遠來看需要進行更多的維護工作,並且可能更容易出錯。
“我也考慮過創建一個通用文件表,然後通過 a/b_files 引用它,但在我看來,這似乎是一種過度殺傷連接。 ” - 以對您的案例最合乎邏輯的方式設計您的表和對象結構,如果有必要的話,擔心之後的性能。現代關係數據庫系統可以在正確索引時很好地處理大量行,即使在加入時也是如此。
一般來說,聽起來您只需要一個定義為
(id, url, type, entity_id)
.