database-design - 在哪里存储系统值

标签 database-design oop

这似乎是一个常见问题,但我找不到它。也许“系统值(value)”这个词是错误的。

无论如何,“系统值(value)”是指系统对于给定概念具有的内置值(value)。例如,如果我有一个类别列表(例如墨西哥、美国、意大利等),您会将它们存储在哪里?您会对它们进行硬编码(也许是枚举)还是放入数据库中?

如果你说硬编码,如果用户可以创建新类别,你的答案会改变吗?显然,您必须将新值存储在数据库(或其他介质,如 xml)中,但是您是否会将标准系统值硬编码,然后在运行时合并它们?

最佳答案

有一些符号值对于应用程序来说是真正的常量(例如 pi 的值,或整数可以表示的最大值)。将它们放入源代码中就可以了。

如果您预见用户需要更改这些值,您需要将它们放入外部配置(或数据库)文件中。有些值在代码中,有些值在配置中,这会让人感到困惑;对于列表,让用户删除他不想要的值也可能很困难。

对于配置文件中的值,您仍然希望将它们置于源代码控制之下。为此,常见的选项是:

  1. 对于配置文件,请在源代码管理中拥有配置文件的默认版本。
  2. 对于 SQL 数据,可以有一个包含 SQL 命令的文件,也可以有一个在源代码控制下创建初始数据库的程序。

关于database-design - 在哪里存储系统值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1563823/

相关文章:

sql - 在表中包含一个外键列?

database - 制作字典数据库的最佳方法是什么

java - 为什么passwordEncoder()作为@Bean?

c++ - 如何让一个成员对象通知它的容器对象?

c# - 想要避免在传递给 Composite 的 Strategy 中向下转型

用于搜索具有无限数量位字段的表的 SQL 设计方法

mysql - 标准化数据(1NF)仍然有意义吗? (表中有空字段有什么问题?)

mysql - 如何处理用户个人资料字段的隐私?

javascript面向对象的函数内调用函数或var内调用函数

java - 如何在 Java 中 DRY 这些代码块?