我为一个包含用户设置的应用程序设计了一个数据库。这个数据库将预装几个系统用户设置。这些版本可能会不同。我应该如何处理更新这些设置?
我想出的解决办法是:
将布尔值“system”字段应用于设置表,并在数据库版本号更改时替换所有系统设置。(这在设计这些设置时非常烦人,因为在开发时必须不断擦除数据库)
不要将系统设置放在数据库中,在查询系统设置时,以某种方式将系统数据与数据库中的数据合并。
目前我正在做第一个,但不知何故第二个似乎更合适。在使用Microsoft实体框架时,我应该做什么以及如何将外部数据与数据库中的数据无缝地结合起来?
最佳答案
由于有大量的操作,您可能最终希望对数据执行一个简单的联合以外的操作(内部和外部连接,以查看谁与系统设置匹配,或者谁没有想到),我建议将系统数据放在与用户数据相同的结构中。
这还允许在用户没有特定值时从系统数据填充默认值等行为。
如果您有足够的时间阅读一些很长的内容,那么在this blog post中管理设置和覆盖有一些有趣的地方。