数据库表vs config / yml属性,用于很少更改的值

时间:2012-07-06 20:20:14

标签: database-design configuration-files

我做了一些初步阅读。

Config files vs database tables
Type to use for "Status" columns in a sql table

表:

[video]
    id
    title
    format_id (foreign key)
    language_id (foreign key)
    aspect_ratio_id (foreign key)

[formats]
    id
    name

[languages]
    id
    name

[aspect_ratios]
    id
    name

最后3个表格(格式,语言,aspect_ratios)不会有太大变化(如果有的话)。也就是说,当我们支持它时,我可能会添加一种新语言。

因此,将这些类型的表(仅引用,几乎没有任何更新/插入)提取到独立的yaml文件中并使用应用程序逻辑来处理视图是一种很好的做法吗?或者我应该保留数据库中的所有内容以维护数据和表连接的(小)成本的关系完整性?

2 个答案:

答案 0 :(得分:1)

如果他们很少更改并且可以在部署之前或部署时定义,我更喜欢YAML或JSON文件。

答案 1 :(得分:1)

您是否需要在这些表上强制执行引用完整性(即外键)?如果是,则将它们保存在数据库中,让DBMS为您强制执行。同样适用于其他类型的诚信。

你打算和其他人一起加入这些桌子吗?如果是,请将它们保存在数据库中,让DBMS完成繁重工作。

您是否需要以事务方式更新它们(尽管很少)?如果是,那么让DBMS为您提供ACID

您需要备份此数据吗?如果是,请将其与常规数据库备份一起发生。

您是否需要确保所有客户的数据相同?如果是,则数据库等中心位置显然是候选者。

Etc等......