0

我启动了 SQLite 数据库浏览器并找到了 Blob、Int 和 Text 数据类型。还有一个框可以命名您自己的类型,但我希望这些不会在 SQLite 中得到广泛支持。

如果我的记录具有可变数量的字段(每个字段本身都是字段的组合,例如 int 和 text),我将如何将它们放在表中?我猜我需要为这些制作另一张桌子。没有更优雅的解决方案吗?特别是关于使用 SQLite 数据库管理器手动创建数据库。

4

2 回答 2

1

您可以在两个表设置中存储动态字段名称。

创建两个表...标题和详细信息。标题将保存主 ID 以及记录的所有行共有的任何信息。详细信息将保存标题中的 ID、“列名”和列值。

Create table header (id int, desc character varying)

Create table details (id int, header_id int, column_name character varying, column_value character varying)

了解结构的想法?它被称为名称值对关系(实体/属性),可以为单个标题记录存储任意数量的“列”......然后您需要旋转(或构建)详细信息表以读取其中的信息(可以作为视图完成)

于 2012-06-25T18:21:48.713 回答
1

这将是典型的一对多关系。是的,为这些字段创建另一个表,其中包含一个附加列,即它所依赖的记录的 ID。

如果这些字段不包含太多数据(它们是数字或标签),那么在 SQLite 中,有时最好将它们作为逗号(或其他符号)分隔的值存储在 TEXT 列中。

于 2012-06-25T16:59:15.513 回答