我有一個數以千計的書籍(標題,年份,作家等)數據庫表。用戶可以將他們已閱讀的書籍添加到列表中。我想給他們添加他們自己的圖書的能力,如果他們不在數據庫中可用,他們將只爲該用戶提供。我應該創建一個新表格,還是隻需將他們的書籍添加到主表格中的「is_custom」和「user_id」列?第二種方式對我來說似乎更容易管理(例如,在搜索方面,加入兩張表似乎很愚蠢..),但是我問,既然(我的書和用戶書籍)會變得相當大..我應該創建一個數據庫表還是兩個?
謝謝!
我有一個數以千計的書籍(標題,年份,作家等)數據庫表。用戶可以將他們已閱讀的書籍添加到列表中。我想給他們添加他們自己的圖書的能力,如果他們不在數據庫中可用,他們將只爲該用戶提供。我應該創建一個新表格,還是隻需將他們的書籍添加到主表格中的「is_custom」和「user_id」列?第二種方式對我來說似乎更容易管理(例如,在搜索方面,加入兩張表似乎很愚蠢..),但是我問,既然(我的書和用戶書籍)會變得相當大..我應該創建一個數據庫表還是兩個?
謝謝!
理論上最好的方法是對一個實體使用一張表。所以變體1. '用戶' - 通過鏈接表(多對多)的另一個表。您自己的書籍屬於預定義的常用用戶(更好,或者沒有與用戶的鏈接)。
在OOP數據庫中,您可以使用父表和兩個孩子。但起初看,你的情況並不需要這樣。
我首先設計的是簡單性和可維護性,一旦知道自己有問題,只會介紹性能改進。 「漂亮」對不同的人來說意味着不同的事物 - 但是如果你必須解決這個問題,如果你將數據分成兩個表格,或者可能更糟 - 你可能需要解決兩次問題。不同的解決方案來管理「books」表,而不是「userBooks」表。