首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django数据库设计改进

Django数据库设计改进
EN

Stack Overflow用户
提问于 2019-07-15 07:23:29
回答 1查看 33关注 0票数 0

我设计了一个具有抽象基类的应用程序,该类描述具有一些公共字段(名称、日期等)的通用设备。以及许多描述协议及其属性的继承类,如:

  • SNMP (社区、auth等)
  • 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).

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2019-07-15 10:12:10

如果我正确理解,重点是将所有特定的度量表合并到一个通用表中,同时仍然能够指向正确的“设备”父记录。

如果是的话,那么多表继承可能就是你要找的。

使用多表继承,您确实有一个带有“公共字段”的单一基“设备”表(加上每个设备子类具有特定字段的不同表),因此您的通用“度量”表只需要在基本“设备”表上使用一个外键。

当然,缺点是需要额外的工作才能获得设备的子类数据,但是IIRC已经有几个Django包实现了这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57034973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档