【问题标题】:Optimize Tables in Database Design在数据库设计中优化表
【发布时间】:2023-03-21 10:24:01
【问题描述】:

我有 3 个表产品、颜色和类别。颜色和类别表只有名称字段。所以我需要优化表的数量。 因为为了检索产品数据,我需要从所有这些表中获取数据。而不是它,我只想要像单表这样的东西。所以一切都可以从单表中检索。

简而言之,寻找使用动态插入和更新功能调整产品表中颜色和类别名称的方法。

Product Table

product_id | int
name       | varchar
description| text
category   | cat_id
color      | color_id
size       | size_id

Color Table

color_id   | int
color      | varchar  

Category Table

cat_id     | int
category   | varchar  

为了从产品表中检索数据,我需要写JOIN,因为颜色和类别有产品表的数据。和更多的加入查询结果更多的加载时间。所以需要优化表的数量。

【问题讨论】:

  • 有多少种颜色?有多少个类别?
  • 它们必须是动态的。管理员可以插入|更新|从后端删除。@etsa
  • 您的架构在我看来是合理的。您的实际问题是什么?
  • 我需要减少表的数量。 3桌对1桌。 @TimBiegeleisen
  • @Dhruvang 这样做意味着对您的架构进行非规范化,这会浪费大量空间。在这里要明确一点:只要正确调整数据库和查询,进行连接就没有错。

标签: php mysql optimization database-design


【解决方案1】:

您当前的结构足以容纳具有单一颜色和类别的产品信息。现在不需要优化表结构。它看起来像是完美的数据库结构。

您可以创建视图以避免每次都写入连接。

【讨论】:

  • 并且您可以(这取决于...)在产品表上创建索引(一个带有 color_id,一个带有 cat_id)具有更好的性能
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-19
  • 1970-01-01
  • 2011-01-07
  • 1970-01-01
  • 2011-04-18
  • 2010-12-31
相关资源
最近更新 更多