【发布时间】:2015-10-29 20:25:07
【问题描述】:
我有一个 SQLite 数据库,其中有一个包含 11 列的表,其中 8 列为 Text,字符串很长。我需要再添加 8 个 Text 列,这些列可能会或可能不会获得长字符串值。
所以我想知道是否应该将这些额外的 8 列添加到当前表或创建一个包含外键的新表?
如果我想使用一些查询来搜索数据库中的数据,哪种方式更好?
谢谢。
【问题讨论】:
标签: database sqlite database-design
我有一个 SQLite 数据库,其中有一个包含 11 列的表,其中 8 列为 Text,字符串很长。我需要再添加 8 个 Text 列,这些列可能会或可能不会获得长字符串值。
所以我想知道是否应该将这些额外的 8 列添加到当前表或创建一个包含外键的新表?
如果我想使用一些查询来搜索数据库中的数据,哪种方式更好?
谢谢。
【问题讨论】:
标签: database sqlite database-design
这取决于。如果此表上存在现有查询,并且如果他们执行“选择 *”以获取所有列,则在重新评估星号时查询将更改。这可能会或可能不会破坏依赖于查询的软件。 有一个解决方法,包括创建一个包含旧列和新列的新表,然后使用旧表的名称和列创建一个视图。这种解决方法也有一个缺点。
正如 sadfiesch 所说,这里没有标准化问题。
就性能而言,有两种情况都适用,也有没有太大区别的情况。
【讨论】:
您应该在现有表中再添加 8 列。尝试了解database normalization,如果您的数据库是冗余的,您只会添加一个新表。
【讨论】: