0

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

产品 XYZ

非常好

很好

很酷

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

我想将它们存储在一个名为优点的单独表中是没有意义的,因为尽管显示它永远不会用于其他任何东西,而且我将其填充为过于矫枉过正。

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

很好;很好;很酷

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

然后将它们拆分为 php 数组。

我的问题是:有没有更好的方法?

4

2 回答 2

2

我想到了这些解决方案:

  • 如果您想通过它的优势查找产品并且您拥有少于 64 个优势,那么您的数据库中的索引应该在属性上,并且您应该使用SET数据类型,而且它可以节省使用的空间。

  • 如果您不需要索引并且优点可能是任何模糊的描述,那么我认为您的方法可以。

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

  • 在我工作的一家公司中,我们还使用了表格中的优势 1、优势 2 ...优势 N 列。它不是 2NF,但如果您希望用户直接输入这些值(正如您在评论中指出的那样),您可以在表单和KISS中创建优势 1、优势 2 ...优势N 输入字段

于 2012-09-30T09:23:48.803 回答
1

如果您的文本very nice, very good, very coolConstant并且它们没有因产品而异,我会使用如下内容:

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

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

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

// and so on ...

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

于 2012-09-30T09:20:07.843 回答