Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP MySql中的一列或多列_Php_Mysql_Database Design - Fatal编程技术网

PHP MySql中的一列或多列

PHP MySql中的一列或多列,php,mysql,database-design,Php,Mysql,Database Design,假设我想在SQL表中存储值a、b、c 有一个选项,我必须用a-b-c这样的分隔符(考虑到a、b、c值不包含“-”)存储在SQL DB的一列中,然后在检索后用PHP解析它。另一个选择是,我应该将所有三个值存储在不同的列中 我的问题是: 在一列中存储+检索+解析会花费更多时间吗 或 存储在三个不同的列中并检索它需要更多的时间 时间和资源 注意:在任何时候,我都需要a、b、c的所有三个值,即如果我要检索“a”,那么我也需要检索b和c。您应该将它们存储在3个单独的列中。DB是为此而设计的,您完全不应该担

假设我想在SQL表中存储值a、b、c 有一个选项,我必须用a-b-c这样的分隔符(考虑到a、b、c值不包含“-”)存储在SQL DB的一列中,然后在检索后用PHP解析它。另一个选择是,我应该将所有三个值存储在不同的列中

我的问题是:

在一列中存储+检索+解析会花费更多时间吗

存储在三个不同的列中并检索它需要更多的时间 时间和资源


注意:在任何时候,我都需要a、b、c的所有三个值,即如果我要检索“a”,那么我也需要检索b和c。

您应该将它们存储在3个单独的列中。DB是为此而设计的,您完全不应该担心性能问题:)


这将节省您在选择数据后解析的痛苦,并且您将能够使用数据库的所有可能性:计算每个值的出现次数…

您应该将它们存储在3个单独的列中。DB是为此而设计的,您完全不应该担心性能问题:)


这将节省您在选择数据后解析的痛苦,并且您将能够使用数据库的所有可能性:计算每个值的出现次数…

我认为,使用三列作为索引是正确的,因为MySQL在中存储索引,这比使用PHP检索和解析更快

我认为,使用三列作为索引是正确的,因为MySQL在中存储索引,这比使用PHP检索和解析更快

将所有变量存储在一列中可能会稍微快一些,因为MySQL只有一个表要查询,而不是三个表。然而,是否应该拆分表的问题与性能无关,而是与数据模型的规范化有关。更多信息请参见

澄清 假设您有一个名为“users”的表。假设您要存储用户的id、名字、姓氏和城市。把它们放在不同的桌子上是没有意义的。但是,如果要存储用户从网店或其他地方发出的订单,则不能将其存储在同一个表中。它不仅涉及不同的内容(订单与用户),而且因为您不知道用户将下多少订单,所以需要一个新表


所以normalization=good,将字段放在单独的表中,仅仅因为您可以=bad。

将所有变量存储在一列中可能会稍微快一些,因为MySQL只有一个表要查询,而不是三个表。然而,是否应该拆分表的问题与性能无关,而是与数据模型的规范化有关。更多信息请参见

澄清 假设您有一个名为“users”的表。假设您要存储用户的id、名字、姓氏和城市。把它们放在不同的桌子上是没有意义的。但是,如果要存储用户从网店或其他地方发出的订单,则不能将其存储在同一个表中。它不仅涉及不同的内容(订单与用户),而且因为您不知道用户将下多少订单,所以需要一个新表


因此,normalization=good,将字段放在单独的表中只是因为您可以=bad。

最好省去解析字符串的麻烦,这可能会导致更大的函数开销


此外,需要所有三个值并不意味着列的数量也无关紧要。使用3个独立的列,您可以单独查询字符串,而无需进行昂贵的查询调用来解析和搜索行中所需的数据。

最好省去解析字符串的麻烦,因为解析字符串可能会带来更大的函数开销


此外,需要所有三个值并不意味着列的数量也无关紧要。使用3个独立的列,您可以单独查询,而无需进行昂贵的查询调用来分析和搜索行中所需的数据。

如果变量数始终相同,则应使用3个不同的列,但如果不是,则可以将这些值放在1列中。我通过添加
#
,类似这样的
#value#
,当我需要这些值时,我只使用php函数('#',$sql\u val)。

如果变量的数量一直是相同的,你应该使用3个不同的列,但如果不是,你可以将这些值放在1列中。我通过添加
#
,类似于这样的
#value#
,当我需要这些值时,我只使用php函数('#',$sql\u val)。

您可能需要考虑的一件事是:您是否需要添加一个“D”或“E”。。。专栏

如果答案是肯定的或可能的话,那么一个查找表将有助于对数据库进行未来验证


如果A、B或C列成为可选列,这也适用。您可能需要考虑一件事:是否需要添加“D”或“E”。。。专栏

如果答案是肯定的或可能的话,那么一个查找表将有助于对数据库进行未来验证


如果A列、B列或C列成为可选列,这也适用。有趣的是,我可以准确地了解3列解决方案的性能,也就是执行DB的标准方法,而我无法对您的解决方案发表意见。为什么?你能正确地实施它吗?它会没有bug吗?如果您的代码被审查,这样的设计将很容易被拒绝


另一件需要考虑的事情是代码维护。经常会看到一个月前写的东西,然后想“这家伙在想什么!”。特别是当你是那个家伙时。

一个有趣的事实是,我可以准确地了解3列解决方案的性能,也就是做DB的标准方法,而我却无法说出自己的想法