我有一個模型「消息」,我用它來存儲整個網站的消息。這些是討論中的消息,私人消息和可能的聊天。它們全部儲存在一張桌子裏。我想知道如果我在幾個模型和表格之間傳播信息會不會更快。一個用於聊天,一個用於討論等。Django:一個模型的幾張表。
所以我應該保留所有的消息在一個表/模型或創建幾個相同的模型/表?
我有一個模型「消息」,我用它來存儲整個網站的消息。這些是討論中的消息,私人消息和可能的聊天。它們全部儲存在一張桌子裏。我想知道如果我在幾個模型和表格之間傳播信息會不會更快。一個用於聊天,一個用於討論等。Django:一個模型的幾張表。
所以我應該保留所有的消息在一個表/模型或創建幾個相同的模型/表?
只要你有你的type
列的索引並對其進行過濾,它將具有相同的速度。當您的表格變得非常大時,只需在type
列中進行分割即可,它與執行多個表格的性能相同,但您的應用只會看到一個大表格。
一「表」將成爲搜索目的更好的(同時對所有的郵件,你可以在「搜索」。
然而,多個表可能會受益於速度。
爲什麼不使用抽象類?
class MessageBase(models.Model):
subject = models.CharField(max_length=255)
test = models.TextField()
class ChatMessage(MessageBase):
pass
這將創建2個表,該表ChatMessage只是直接引用該表MessageBase,這會給你兩全其美。「搜索」使用MessageBase以獲取任何消息,但保存,並參考,所有其他呃使用它的特定模型類的消息。
(請注意,這裏的蟒蛇可能是稍有不妥,因爲它尚未經過測試,但我敢肯定你的想法!)