SQL表有一行吗?

Jer*_*ell 17 sql schema

在数据库中只有一行的表中有什么意义(如果有的话)?

注意:我不是在讨论在表中只有一行的可能性,而是在开发人员故意制作一个总是只有一行的表时.

编辑:

销售税示例很好.

我刚刚在一些代码中观察到我正在审查三个不同的表,这些表包含三种不同类型的证书(一个SSL),每个表只有一行.我不明白为什么这不是一张大表; 我想我错过了什么.

Wel*_*bog 11

当一个开发人员被要求创建一个配置表来存储需要持久存储但不经常更改的数据的名称 - 值对时,我已经看到了这样的事情.他最终创建了一个包含每个配置变量列的单行表.我不会说这是一个好主意,但我可以肯定地看到为什么开发人员根据他的指示做了.毋庸置疑,它没有通过审查.

我刚刚在一些代码中观察到我正在审查三个不同的表,这些表包含三种不同类型的证书(一个SSL),每个表只有一行.我不明白为什么这不是一排的; 我想我错过了什么.

这听起来不像是好的设计,除非你有一些重要的细节你不知道.如果有三条信息具有相同的约束,相同的使用和相同的结构,它们应该在99%的时间存储在同一个表中.从根本上说,这是表格的重要组成部分.

  • Welbog 考虑到您的案例的限制,您提到什么是好的设计选项? (2认同)

Vin*_*jip 10

对于某些事情,您只需要一行 - 通常是系统配置数据.例如,"当前销售税率".这可能会在将来发生变化,因此不应该硬编码,但通常在任何给定时间都只需要一个.这种数据需要在数据库中,以便查询可以在计算中使用它.

  • 对于简单的系统配置数据,我会考虑一个键值对表,每个配置项都有一行. (4认同)
  • 如果只有一个配置项,表中只有一行:-) (4认同)
  • 那么你是否将每个州作为一列?即:从 CurrentSalesTaxRate 选择加利福尼亚州? (2认同)
  • 我不太喜欢这个,例如在加拿大,我们的国家销售税在过去五年里改变了两次,省级销售税也在改变。因此,带有税/税率/有效/到期日期的销售税表效果最好。 (2认同)
  • 取决于应用程序。例如,如果您需要处理不同州的多个销售税率,则它不会在单行表中;而是在单行表中。但是,如果您在欧洲进行单一国家/地区的应用程序,您可以将增值税税率放入这样的表中。 (2认同)
  • @JasonMusgrove然而,即使是一组简单的系统配置数据也可以轻松包含不同类型的值.例如整数,字符串和bool.当然,我们不能为每个不同的值类型创建一个新的键值表,因此我们回到单行表. (2认同)

Aar*_* Fi 10

这不一定是个坏主意.

如果您想要存储某个全局状态(例如,布尔值),该怎么办?您希望您的存储过程轻松访问此状态吗?

您可以使用主键创建一个表,其值范围仅限于一个值.


小智 5

单行就像一个单例类。目的:控制或管理其他过程。

单行表可以用作关键部分或确定性自动机(基于行值的调度程序的种类)

表COMPANY_DESCRIPTION中的一行已满,以获取有关该公司的一致数据。充分使用公司的来信和地址。

单行已用满,包含增值税,日期或时间等实际值。