mysql - 这是一个好的数据库架构,如果不是,我可以改变它吗

标签 mysql database database-design many-to-many database-normalization

Database structure

我在一个旧帖子中发现了这个,我正在考虑将它用于一个项目,但我不知道我应该改变它还是放弃它,这是我想要改变的:

  • 删除 产品选项并将产品 ID 和选项组 ID 添加到 选项
  • 删除 订单详情并将其信息放在 中订单

  • 我在做什么不好?另外,如果您能告诉我一些此类事情的最佳实践,我将不胜感激。

    谢谢你的时间。

    最佳答案

    两张 table 都在那里是有充分理由的。
    productoptionsoptions之间的映射表和 products :这是一个多对多的关系,其中一个给定的产品可能有多个选项,一个选项可能被多个产品使用。如果你删除这个表,你最终会重复添加 optionNameproductoptions 中的每一行与相同的选项相关,这是低效的,并且可能会破坏数据完整性(您如何确保给定的选项始终具有相同的名称?)。

    至于order_details : 这是对 orders 的多对一关系.一个订单可能有多个详细信息行,每个详细信息行都指向不同的产品。删除此表意味着失去这种可能性。

    关于mysql - 这是一个好的数据库架构,如果不是,我可以改变它吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62077044/

    相关文章:

    mysql - 使用绝对 URL 加载 MySQL 文件中的数据

    database - 数据建模 : parent and child 'dual' relationship

    mysql - 我应该对用户 ID 列应用什么索引?

    python - 如何在 python 2.7.5 和 mysql 5.6 上安装 mysql

    sql-server - 在 VB.Net 中将 Datagrid 数据保存到 SQL Server 数据库

    mysql - 我可以将使用 Dreamweaver 创建的网页转换为 Webmatrix 项目吗?

    sql - 查询中的多列排序

    MySQL 索引 : 1 keyname multiple columns OR 1 keyname per column?

    database-design - 什么时候不应该使用代理主键?

    PHP PDO 返回 SELECT FOUND_ROWS() 不一致的结果