单表减少联合查询?

Bab*_*ase 1 mysql

我们正在用PHP做电子商务购物网站。

我们设计的数据库如下图。

我们计划删除“category_Details”表并在“products_information”表中包含“category_id & category_name”列,因为这将减少一张表。这是个好主意还是为“类别”设置单独的列更好?我们可能会在“category_name”列下得到 15 行。我们计划合并,因为我们必须使用多个联合查询来获取信息?

在图像中,designer_details 表包含销售其产品的所有卖家/供应商。

在此处输入图片说明

Mar*_*rco 6

这不是把一个好主意category_nameproduct_information。这样你就会“打破”规范化。不是存储category_name15 次,而是多次存储相同的名称。您谈到获得加入,但这会给您带来有限的行数category_details,并没有太大的优势。整个category_details表将在内存中,您只需要在需要category_name.

你说你有大约 15 个类别。我想你有(很多)更多的产品。所以这使它成为一对多的关系,这是MySQL答案中的第二种情况:多个表还是一个包含多列的表?你在评论中提到的。那里提到,在一对多关系的情况下,您必须将信息放在单独的表中。

还要看应用层面。如果每次都必须有人输入,category_name你可能会得到相同的名字但拼写不同。这将使搜索变得困难。