database - 关系数据库中的建模继承
问题描述
我目前正在尝试弄清楚如何在关系数据库中建模继承(我的意思是像面向对象的编程风格那样建模继承)。我将使用Jooq来做这件事,我面临着几个问题。想象一下,我有 3 个对象:动物、狗、猫。猫和狗继承自动物。
我看到有 3 种主流方式可以做到这一点:
- MTI(多表继承,每个对象都有自己的表,并且存在一个父表来对父表进行建模,所以会有三个表,animal_table,dog_table和cat_table)
- 单表(所有 Cat、Dog 和 Animal 都将存储在同一个表 all_animals 中)
在猫和狗中,我有一些关于猫和狗的信息。现在,假设我需要从 Animal Id 中获取相应的具体对象,因此要么是 Cat 要么是 Dog。一种方法是: 1 - 从动物表中获取动物 2 - 确定动物的类型(假设它是狗) 3 - 直接从表中获取狗 Dog
让我烦恼的是,我必须多次请求才能这样做。你知道我如何在不使用多个请求的情况下实现这一目标吗(一个简单的将是最好的)?)因为现在,我有 N 个不同动物(鹦鹉、老鼠、狗、猫……)的图像我必须首先获取此动物的类型,然后请求正确的表,鹦鹉、老鼠、狗、猫等。我想避免这种情况。
解决方案
推荐阅读
- node.js - 续集:关系“
" 播种时查询表时不存在 - php - 用PHP从MySQL中的指定表中删除一条记录
- facebook - Facebook Graph API 页面相册 - 指定图像的大小
- github - 是否可以在 GitLab 中进行拉取请求审查?
- jenkins - 如何从命令行的声纳扫描仪在本地工作区中生成 html 报告
- reactjs - 将 axios 警报消息解析为 React DOM
- c++ - uppper_bound 可以用 lower_bound 表示吗
- javascript - 如何在 Vanilla JS 中用下拉菜单替换输入框
- javascript - 比较两个在javascript中不起作用的空数组
- opengl - 旋转后右、上、前不正确