在数据库表中存储产品描述/详细信息的最佳方式是什么。PHP-mysql

在数据库表中存储产品描述/详细信息的最佳方式是什么。PHP-mysql,php,mysql,Php,Mysql,假设我们有一个具有以下描述的产品(如图所示,每行一个): 说明1 说明2 说明3 说明4 描述 将这些产品描述存储在数据库表中以便在动态产品页面的“描述”选项卡中显示的最佳方式是什么 我希望避免创建N个不同的表列,每个描述一个 感谢您的建议创建另一个关系表 产品表: id name serial .... 说明表: id product_id description order / could be 1,2,3,n/ 然后你可以: $sql = "SELECT * FROM descri

假设我们有一个具有以下描述的产品(如图所示,每行一个):

说明1

说明2

说明3

说明4

描述

将这些产品描述存储在数据库表中以便在动态产品页面的“描述”选项卡中显示的最佳方式是什么

我希望避免创建N个不同的表列,每个描述一个


感谢您的建议

创建另一个关系表

产品表:

id
name
serial
....
说明表:

id
product_id
description
order / could be 1,2,3,n/
然后你可以:

$sql = "SELECT * FROM descriptions"
    . " WHERE product_id  = " . $productId . ""
    . " ORDER BY `order`";
了解更多信息:

编辑

我已经在order列中添加了,因为我假设,您希望以正确的顺序显示描述。如果不使用此
订单
字段,则无法确定在为一个产品选择描述时,您将从哪个订单取回它们

id | product_id | description | order
1    1            This is the   1
                  first desc 

2    1            This is the   3
                  3rd

3    1            This is the   2
                  2nd

因此,您可以自由地按任何顺序添加描述,但要遵守正确的顺序。
order
字段名可以是任何其他名称,例如:
desc\u order
如果每个产品有n个描述,我建议您创建一个与产品表相关的新表。现在,您可以创建一对多(或添加一个复合表的多对多)关系,而不必担心得到多少不同的描述


之后,您可以使用JOIN子句获取产品的所有描述。如果您希望分隔每个描述,则可以使用数组,然后使用json_encode()数组

<?php
   $text = [
      [0] => 'desc 1',
      [1] => 'desc 2',
      ...
   ];
   $json_text = json_encode($text);
   // save $json_text to the field.

   // to extract the from table
   $text = json_decode($text);
   for($text as $t) {
     echo $t; //the descs.
   }

如果您有多种类型的产品,并且它们有特殊的描述,那么您可以在设计中使用行项目概念,
看到这个了吗

例如,您可以有两个表,如下所示:

Producttbl(productID,产品名称,totalnumber,baseprice)

Productitemtbl(itemid,productid,说明,价格,折扣)


如果你有一家商店,这是储存你的产品及其描述的有效方法之一

使用联接表并将您的描述存储在另一个表中?根据您是否正在创建关系数据库,我建议您检查正常形式以及“一对多”和“多对多”的正确实现方式。对不起,我没有得到“顺序/可能是1,2,3,n/”部分。你能进一步解释一下吗?