如何规划SQLite数据库中的模式更改?

时间:2010-04-30 08:48:48

标签: sqlite database-design schema

我目前正在开发一个将数据存储在SQLite数据库中的应用程序。数据库将具有更多的读取访问权限(事实上,它将被填充一次数据,然后几乎只会进行读取)。因此,读取性能非常重要。我目前正在开发的模式很可能在将来发生变化,并添加了额外的列和表。我对数据库一般没有太多经验。我的问题是,特别是在SQLite中,更改架构时是否有任何陷阱需要考虑?是否有任何模式或最佳实践可以提前计划此类案例?

2 个答案:

答案 0 :(得分:7)

以下是一些建议:

  1. 不要使用select * from ...,因为*的含义随着架构的变化而变化;明确命名查询使用的列
  2. 将架构版本号保留在数据库中,并将代码保留在应用程序中,以便从架构版本N转换为版本N + 1;那么应用程序中的所有代码都使用最新的模式版本;这可能意味着要使用默认值来填充添加的列
  3. 您可以避免使用支持ALTER TABLE ADD COLUMN...
  4. 的SQLite版本3.1.3或更高版本复制表格以进行架构更新

答案 1 :(得分:0)

研究数据集市和星型模式设计。这对你的情况来说可能有点过头了,但至少它会阻止你随意设计。