sql - 如何在 SQLite 中创建继承
问题描述
我必须创建一个 SQLite 数据库,用一些有序的内容对调查进行建模;此内容可以是问题、图像或简单的文本字段(就像 Google 表单一样)。除了可以附有图像列表的问题之外,每个内容都与其他内容没有任何关系。
模拟这种情况的最佳方法是什么?我考虑过创建一个“调查”表和一个只有一个整数 ID 的“内容”表,然后将相同的 ID“复制”到每个表(“问题”、“图像”或“文本字段”)中,但是随后我认为每次需要插入新内容时,我都必须插入内容的值和特定内容(问题、图像或文本字段)的值。我不认为这会是一个大问题,但如果有办法更好地建模,我想要一些建议。
解决方案
您的方法是此答案中定义的“每种类型的表”的示例。
从概念上讲,您是在说“有 3 种内容,它们共享的一件事是它们与调查的关系,如内容表中捕获的那样”。您可以在该表中沿 ID 包含一个显式类型指示符 - 这将使您的代码更加明确。您可能还会发现您需要捕获元数据,例如“状态”、“日期输入”等,这在子类型中很常见。
通过包含类型指示符列,您可以轻松找出内容项的类型。所以,如果你想显示一个问题的摘要,你可以做类似的事情
select content_type, count(*)
from content
where question_id = ?
group by content_type
显示响应的数量和类型。
推荐阅读
- typescript - 访问包含函数的初始化内部的类型属性
- php - Laravel 通过具有价值的中间表关联 2 个模型
- python - 如何返回每个字段/列只有一个值的结构化数组?
- algorithm - 以最少的分裂量在汽车之间分配人群的有效算法
- python - Pandas groupby 按特定标签获取总行数的百分比
- visual-studio-2019 - 你如何获得旧版本的 postsharp 的编译图像?
- sql - 小公司如何为历史数据存储选择合适的数据库
- php - 通过ajax在另一个页面上设置cookie
- jquery - 为什么在单击事件后聚焦时不应用浏览器默认聚焦样式?
- python - Badrequestkeyerror robobrowser