gpt4 book ai didi

java - 设计多对多关系的正确方法

转载 作者:行者123 更新时间:2023-11-29 09:35:38 27 4
gpt4 key购买 nike

我正在用Java编程语言开发一个软件,并使用MySQL作为数据库。该软件收集用户的一些输入,然后计算/选择他/她需要的产品。首先,他/她创建一个项目(应创建一个名为项目的表)并计算/选择产品,然后将它们添加到项目中。产品字段彼此不同。(因此我们为每个名为 A、B、C 的产品有不同的表)例如,我有 3 种类型的产品,每种产品都有特定的字段并且彼此不同,因此用户选择/计算每种产品的方式都不同。产品 A 有 3 个字段(product_id、name、model)产品 B 有 7 个字段(product_id、名称、颜色、公司名称,...)产品C有14个字段(product_id、name、company name、made by、created by、......)我不能将这些产品视为一个产品,因为领域不同。每个产品可以在多个项目中,每个项目可以有多种类型的产品。(多对多关系)每个项目都必须保存产品。在这种情况下,我应该在每个产品表和项目之间创建多对多关系吗?如果是,我稍后如何再次检索项目?对于这种情况,最佳做法是什么?我如何将这 3 个产品表视为一个表?

最佳答案

您可能想要创建一个 JOIN 表来管理其他两个表中的记录之间的相互关系。

例如:

  • 项目(project_id、project_name)
  • 产品(产品 ID、产品名称)
  • project_products(pp_project_id、pp_product_id)

这样你就可以:

  • 在定义项目和产品之间的相互关系之前先创建项目和产品
  • 轻松定义项目和产品之间的相互关系,无需创建复杂的架构

使用示例:

项目表:

project_id  |  project_name
------------+----------------
1 | Country market
2 | City carnival

产品表:

product_id   |  product_name
-------------+---------------
101 | Candy floss
102 | Cheeseburger
103 | Hamburger
104 | Pizza - Hawaiian

project_products 表:

pp_project_id  |  pp_product_id
---------------+----------------
1 | 101
1 | 103
1 | 104
2 | 101
2 | 102
2 | 104

在上面的例子中...

  • 项目 1 有 3 种产品可供选择
  • 项目 2 有 3 种产品可供选择
  • 产品 101 和 104 均针对 2 个项目进行记录
  • 其余产品仅针对 1 个项目进行记录

关于java - 设计多对多关系的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57662260/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com