1

我想就处理具有正常(传统)数据库数据的情况的最佳方法提出一些观点,同时也有更像“ini 文件”数据的数据,并且您希望保持它们之间的完整性(分层数据? )。

例如,假设我有一个包含 100 行的“CURRENCY”表。同时,我有一个“默认货币”的系统设置,它必须映射到这 100 行之一。

现在,我会将默认货币代码存储在 XML 配置文件、ini 文件或 Windows 注册表中。这对数据来说很好,但要确保 XML 文件中的值确实对应于数据库中的有效外键值,需要做一些工作。

如何在数据库中(以声明方式?)完成此操作,以便分层数据可以引用并因此与关系数据保持完整性?

4

3 回答 3

1

可能是具有 2 列、一个键(或名称)和一个值列的表可以满足您的要求。将您的关系数据放入规范化表中,将“配置”类型的数据放入键/值对表中。

于 2009-05-18T09:36:55.887 回答
0

在配置文件中按名称存储值可能比使用外键 ID 更有意义。配置文件可能包含“USD”,然后您的代码将按名称进行查找以获取 CURRENCY 表中的行。

于 2009-05-18T08:03:47.507 回答
0

这是无法做到的,因为配置设置总是可以由外部程序(例如文本编辑器、regedit 等)更新。防止这种情况发生的唯一方法是运行一个服务,持续监控文件或注册表设置并禁止任何除非数据库正在运行并且还可以执行完整性检查,否则更改。这显然是大材小用——正确的解决方案是将配置数据存储在数据库中。

于 2009-05-18T08:07:49.747 回答