簡體   English   中英

Django數據庫設計改進

[英]Django Database design improvement

我設計了一個具有抽象基類的應用程序,該基類描述了具有一些公共字段(名稱,日期等)的通用設備,並描述了協議及其屬性的許多繼承的類,例如:

  • SNMP(社區,身份驗證等)
  • HTTP(端點等)

此外,我還有很多表,其中包含通過上述協議收集的數據並引用了父設備,如下所示:

  • SNMP_detections (id, collected_data, datetime, parent_obj [FK to SNMP])
  • HTTP_detections (id, collected_data, datetime, parent_obj [FK to HTTP])

因此,我正在考慮優化當前的數據庫布局,尤其是測量表,我對如何僅使用一個表並從那里引用父設備(可以是HTTP或SNMP)感興趣...

有什么建議嗎?

如果我理解正確,那么關鍵是將所有特定的度量表合並到一個通用的表中,同時仍然能夠指向正確的“設備”父記錄。

如果是,那么多表繼承可能就是您想要的。

使用多表繼承,您確實有一個帶有“公共字段”的基本“設備”表(以及一個針對每個設備子類具有特定字段的不同表),因此您的通用“測量”表只需要在基本“設備”上使用外鍵”表。

當然,缺點是您需要做一些額外的工作來獲取設備的子類數據,但是IIRC已經有幾個Django軟件包已經實現了這一點。

暫無
暫無

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

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