Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.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 在这种情况下,滑动管柱的替代方案?_Php - Fatal编程技术网

Php 在这种情况下,滑动管柱的替代方案?

Php 在这种情况下,滑动管柱的替代方案?,php,Php,我有以下信息要动态显示: 乘积XYZ 非常好 很好 很酷 这些非常好,非常好,非常酷的优点是一个给定的产品,文字,描述的优势,通常以项目符号的形式显示 我想把这些东西单独放在一张名为“优势”的桌子上是没有意义的,因为它永远不会被用来做任何其他东西,尽管它会被显示出来,我把它填得太多了 所以我考虑在这个产品表上创建一个varchar255字段,并允许插入如下值: 很好,;很好,;很酷 在自由格式文本输入字段上 然后在一个php数组上拆分这些 我的问题是:这是一种更好的方法吗?如果您的文本非常好、非

我有以下信息要动态显示:

乘积XYZ

非常好

很好

很酷

这些非常好,非常好,非常酷的优点是一个给定的产品,文字,描述的优势,通常以项目符号的形式显示

我想把这些东西单独放在一张名为“优势”的桌子上是没有意义的,因为它永远不会被用来做任何其他东西,尽管它会被显示出来,我把它填得太多了

所以我考虑在这个产品表上创建一个varchar255字段,并允许插入如下值:

很好,;很好,;很酷

在自由格式文本输入字段上

然后在一个php数组上拆分这些


我的问题是:这是一种更好的方法吗?

如果您的文本
非常好、非常好、非常酷
不变的
并且它们不会随着产品的不同而变化,我会使用这样的方法:

// text from database, '-' means nothing
$a = 'NGC-------';

if ($a[0] == 'N')
    echo 'Very Nice';

if ($a[1] == 'G')
    echo 'Very Good';

// and so on ...

顺便说一下,它将在数据库中节省大量空间,仅此而已。:)

如果您的文本
非常好、非常好、非常酷
不变的
,并且它们不会随着产品的不同而变化,我会使用以下内容:

// text from database, '-' means nothing
$a = 'NGC-------';

if ($a[0] == 'N')
    echo 'Very Nice';

if ($a[1] == 'G')
    echo 'Very Good';

// and so on ...

顺便说一下,它将在数据库中节省大量空间,仅此而已。:)

我想到了这些解决方案:

  • 如果您希望按其优势查找产品,并且您的优势少于64个,则数据库中的索引应该位于属性上,并且您应该使用数据类型,另外还可以节省使用的空间

  • 如果你不需要索引,优点可能是任何模糊的描述,那么我觉得你的方法可以

  • 如果这些组合是有限的,您可以使用所有这些组合创建额外的表,并仅将组合id插入到产品表中。很难插入(检查组合是否已在表中,最终插入新组合并将其id写入产品表),但易于阅读

  • 在我工作的一家公司,我们也使用了advantage1,advantage2。。。表中的advantageN列。它不是2NF,但如果您希望用户直接输入这些值(如您在注释中所述),您只需创建advantage1、advantage2。。。格式中的advantageN输入字段和


    • 我想到了这些解决方案:

      • 如果您希望按其优势查找产品,并且您的优势少于64个,则数据库中的索引应该位于属性上,并且您应该使用数据类型,另外还可以节省使用的空间

      • 如果你不需要索引,优点可能是任何模糊的描述,那么我觉得你的方法可以

      • 如果这些组合是有限的,您可以使用所有这些组合创建额外的表,并仅将组合id插入到产品表中。很难插入(检查组合是否已在表中,最终插入新组合并将其id写入产品表),但易于阅读

      • 在我工作的一家公司,我们也使用了advantage1,advantage2。。。表中的advantageN列。它不是2NF,但如果您希望用户直接输入这些值(如您在注释中所述),您只需创建advantage1、advantage2。。。格式中的advantageN输入字段和


      请定义非常好、非常好和非常酷?是不是很糟糕,好吧,很好?假设这是一个投票系统还是排序?你说的是正确的,那么你可以分解并使用数据库表。这是一个很好的方法,它们是自由格式的文本剪贴画还是一组限定符?听起来像是一个例子。就我个人而言,我觉得频繁地查询数据库以获取包含多个值的短字符串是浪费时间。但这并非闻所未闻。我只是把它放在某种资源文件中,就像一个本地化文件(即使你只有一个)。你应该考虑数据类型设置。请定义非常好,非常好,非常酷。是不是很糟糕,好吧,很好?假设这是一个投票系统还是排序?你说的是正确的,那么你可以分解并使用数据库表。这是一个很好的方法,它们是自由格式的文本剪贴画还是一组限定符?听起来像是一个例子。就我个人而言,我觉得频繁地查询数据库以获取包含多个值的短字符串是浪费时间。但这并非闻所未闻。我只是把它放在某种资源文件中,就像一个本地化文件(即使你只有一个)。你应该考虑数据类型SET,你也可以使用“11011…”格式或者只使用无符号int数据类型并执行位操作。但是,它基本上与SET数据类型相同,只是由DBMS为您进行转换。@JanTuroň是的,字母更容易理解,不需要位操作。:)您也可以使用“11011…”格式,或者只使用无符号INT数据类型并执行位操作。但是,它基本上与SET数据类型相同,只是由DBMS为您进行转换。@JanTuroň是的,字母更容易理解,不需要位操作。:)