MySQL表设计不当引发的数据冗余问题实例

原创 旧城等待, 2025-01-21 01:15 50阅读 0赞

数据冗余在MySQL表设计中常见,以下是一个具体的例子:

假设我们有一个电商应用,销售多种商品。初始设计如下:

  1. 产品表(Product)

    • id (主键,整型)
    • name (名称,字符串)
    • description (描述,文本)
    • price (价格,浮点数)
  2. 分类表(Category)

    • id (主键,整型)
    • name (名称,字符串)
    • products (关联产品,外键)

问题:设计存在冗余,因为产品的分类信息在产品表和分类表中都存在。

解决方法:可以将分类信息抽取出来,设计一个与产品无关的“分类”表。然后通过产品表的关联字段,指向对应的分类记录。

这样设计后的表结构如下:

  1. 产品表(Product)

    • id (主键,整型)
    • name (名称,字符串)
    • description (描述,文本)
    • price (价格,浮点数)
    • category_id (关联分类的外键)
  2. 分类表(Category)

    • id (主键,整型)
    • name (名称,字符串)
    • products (关联产品,空集)

这样设计消除了数据冗余。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,50人围观)

还没有评论,来说两句吧...

相关阅读