如何高效地创建一个行中字段数量可变的大型SQLite数据库?

如何高效地创建一个行中字段数量可变的大型SQLite数据库?,sql,sqlite,database-management,Sql,Sqlite,Database Management,我启动了SQLite数据库浏览器,找到了Blob、Int和Text数据类型。还有一个框可以命名您自己的类型,但我希望这些类型在SQLite中不会得到广泛支持 如果我有字段数量可变的记录(每个字段本身都是字段的组合,例如int和text),我如何将它们放入表中?我想我需要为这些东西再做一张桌子。没有比这更优雅的解决方案了吗?特别是关于使用SQLite数据库管理器手动创建数据库。这将是一种典型的一对多关系。是的,为这些字段创建另一个表,并添加一个列,该列是它所依赖的记录的ID 如果这些字段不包含太多

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


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

这将是一种典型的一对多关系。是的,为这些字段创建另一个表,并添加一个列,该列是它所依赖的记录的ID


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

您可以在双表设置中存储动态字段名

创建两个表…标题和详细信息。标头将保存主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)

对结构有什么想法?它被称为名称-值对关系(实体/属性),可以为单个标题记录存储任意数量的“列”…然后需要透视(或一起构建)详细信息表以读取其中的信息(可以作为视图进行)

查看。因此,第二个表会产生需要自己的主键的开销吗?由于习惯了原生结构,我一直希望索引可以免费使用。你是对的,它不需要自己的键。。。。id,列名称也可以。我个人的偏好是通常只留下一个int列作为主列,但这是可选的。呵呵,对不起…意思是你是正确的头\u id,列\u name将用于id。