0

关于性能和“做事的正确方式”,并试图找出哪种方式更好地将配置数据存储在 SQL 数据库中。假设您有网站配置数据来设置访问该网站的人必须达到的最小和最大年龄。

CREATE TABLE SiteConfig
(
  featureName varchar(100),
  value varchar(100),
)

哪个更好:

  • 将其全部存储在一行中并使用explode(); 在PHP 中处理它。

    特征名称:“年龄要求”

    值:“13|60”

  • 将其存储在每个功能的单独行中,并在需要时选择您需要的功能。

    特征名称:“minAge”

    值:“13”

    功能名称:“最大年龄”

    值:“60”

由于网站的功能数量众多,因此有 60 行数据与大约 25 行数据的差异。

4

2 回答 2

0

存储它有两个独立的功能。

您可能希望访问数据库中的功能,而不是应用程序代码。

没有理由解析逗号分隔的字符串来获得两个特征。

诚然,如果只有两个用逗号分隔的数字,不会出错。然而,这是一个滑坡,您可能很快就会发现自己试图将多个字段填充到单个字符串中,然后投入大量资源来解析字符串。

于 2013-04-21T21:38:07.347 回答
0

如果这些是您永远不会在数据库中自己使用的值,那么任何一个都可以。

如果您怀疑您曾经想要使用数据库中的值,您不会希望它们具有相同的值。这将使查询数据变得复杂且低效。

于 2013-04-21T21:09:58.643 回答