我目前正在开发一个将数据存储在SQLite数据库中的应用程序.数据库将具有更多的读取访问权限(事实上,它将被填充一次数据,然后几乎只会进行读取).因此,读取性能非常重要.我目前正在开发的模式很可能在将来发生变化,并添加了额外的列和表.我对数据库一般没有太多经验.我的问题是,特别是在SQLite中,更改架构时是否有任何陷阱需要考虑?是否有任何模式或最佳做法可以提前计划此类案例?
以下是一些建议:
不要使用,select * from ...
因为*
模式更改的含义会发生变化; 显式命名查询使用的列
将模式版本号保留在数据库中,并将代码保留在应用程序中,以便从模式版本N转换为版本N + 1; 那么应用程序中的所有代码都使用最新的模式版本; 这可能意味着使用默认值来填充添加的列
您可以避免使用支持的SQLite版本3.1.3或更高版本复制表格以进行架构更新 ALTER TABLE ADD COLUMN...