假设您编写了一个可由用户配置的应用程序。为了将该“配置数据”存储到数据库中,通常使用两种模式。
该单行表
CompanyName | StartFullScreen | RefreshSeconds | ... ---------------+-------------------+------------------+-------- ACME Inc. | true | 20 | ...
的名称-值对表
ConfigOption | Value -----------------+------------- CompanyName | ACME Inc. StartFullScreen | true (or 1, or Y, ...) RefreshSeconds | 20 ... | ...
我已经看到了两种选择,它们都有明显的优缺点,例如:
- 单行表限制了您可以拥有的配置选项的数量(因为通常限制一行中的列数)。每个其他配置选项都需要更改数据库架构。
- 在名称/值对表中,所有内容都是“字符串类型的”(您必须对Boolean / Date / etc。参数进行编码/解码)。
- (还有很多)
开发社区内部对于哪种选择更可取达成共识?