首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在这种情况下可以替代slip字符串吗?

在这种情况下可以替代slip字符串吗?
EN

Stack Overflow用户
提问于 2012-09-30 05:55:22
回答 2查看 83关注 0票数 0

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

产品XYZ

非常好

非常好

非常酷

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

我想把它们存储在一个名为advantages的单独的表中是没有意义的,因为除了显示之外,它永远不会被用来做任何其他事情,我把它填得太夸张了。

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

非常好;非常好;非常酷

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

然后在php数组中拆分它们。

我的问题是:它是不是一种更好的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-30 17:23:49

这些解决方案在我的脑海中闪过:

  • 如果你想通过它的优势来查找产品,并且你有不到64个优势,你的数据库中的索引应该在属性上,你应该使用SET数据类型,而且它节省了使用的空间。
  • 如果你不需要索引,优势可能是任何模糊的描述,那么我认为你的方法是可以的。
  • 如果这些组合是有限的,你可以用所有这些组合创建额外的表,并只将组合id插入到产品表中。
  • 它很难插入(检查组合是否已经在表中,最终插入新组合并将其id写入产品表),但很容易阅读。
  • 在我工作的一家公司,我们也使用了advantage1,advantage2 ...表中的advantageN列。它不是2NF,但如果您希望用户直接输入这些值(正如您在注释中所指出的那样),您可以只创建advantage1,advantage2 ...表单和KISS

中的advantageN输入字段

票数 2
EN

Stack Overflow用户

发布于 2012-09-30 17:20:08

如果你的文本very nice, very good, very coolConstant,并且它们不会随着产品的不同而改变,我会使用这样的东西:

代码语言:javascript
复制
// text from database, '-' means nothing
$a = 'NGC-------';

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

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

// and so on ...

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12656842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档