在数据库表中存储产品描述/详细信息的最佳方式是什么。PHP-mysql
假设我们有一个具有以下描述的产品(如图所示,每行一个): 说明1 说明2 说明3 说明4 描述 将这些产品描述存储在数据库表中以便在动态产品页面的“描述”选项卡中显示的最佳方式是什么 我希望避免创建N个不同的表列,每个描述一个在数据库表中存储产品描述/详细信息的最佳方式是什么。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
感谢您的建议创建另一个关系表 产品表:
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/”部分。你能进一步解释一下吗?