我做了一些初步阅读。
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文件中并使用应用程序逻辑来处理视图是一种很好的做法吗?或者我应该保留数据库中的所有内容以维护数据和表连接的(小)成本的关系完整性?
答案 0 :(得分:1)
如果他们很少更改并且可以在部署之前或部署时定义,我更喜欢YAML或JSON文件。
答案 1 :(得分:1)
您是否需要在这些表上强制执行引用完整性(即外键)?如果是,则将它们保存在数据库中,让DBMS为您强制执行。同样适用于其他类型的诚信。
你打算和其他人一起加入这些桌子吗?如果是,请将它们保存在数据库中,让DBMS完成繁重工作。
您是否需要以事务方式更新它们(尽管很少)?如果是,那么让DBMS为您提供ACID。
您需要备份此数据吗?如果是,请将其与常规数据库备份一起发生。
您是否需要确保所有客户的数据相同?如果是,则数据库等中心位置显然是候选者。
Etc等......