首页 > 解决方案 > 如何在 SQLite 中创建继承

问题描述

我必须创建一个 SQLite 数据库,用一些有序的内容对调查进行建模;此内容可以是问题、图像或简单的文本字段(就像 Google 表单一样)。除了可以附有图像列表的问题之外,每个内容都与其他内容没有任何关系。

模拟这种情况的最佳方法是什么?我考虑过创建一个“调查”表和一个只有一个整数 ID 的“内容”表,然后将相同的 ID“复制”到每个表(“问题”、“图像”或“文本字段”)中,但是随后我认为每次需要插入新内容时,我都必须插入内容的值和特定内容(问题、图像或文本字段)的值。我不认为这会是一个大问题,但如果有办法更好地建模,我想要一些建议。

标签: sqlsqlite

解决方案


您的方法是此答案中定义的“每种类型的表”的示例。

从概念上讲,您是在说“有 3 种内容,它们共享的一件事是它们与调查的关系,如内容表中捕获的那样”。您可以在该表中沿 ID 包含一个显式类型指示符 - 这将使您的代码更加明确。您可能还会发现您需要捕获元数据,例如“状态”、“日期输入”等,这在子类型中很常见。

通过包含类型指示符列,您可以轻松找出内容项的类型。所以,如果你想显示一个问题的摘要,你可以做类似的事情

select content_type, count(*)
from content
where question_id = ?
group by content_type

显示响应的数量和类型。


推荐阅读