java开发中:用户、订单、订单详情、商品之间的关系 搞不清

此案例的业务关系是用户、订单、订单详情、商品之间的关系,其中,
一个订单只能属于一个人。
一个订单可以有多个订单详情。
一个订单详情中包含一个商品信息。

所以它们的关系是如下:
订单和人是 一对一的关系。
订单和订单详情是 一对多 的关系。
订单和商品是 多对多的关系。

明明人和订单是一对多,为什么说成了一对一,订单和商品又怎么是多对多的关系?
求解

最近在oracle数据库里刚学了交易系统表结构的设计,来说说我的理解。
先把用户抛开。三张表,订单表,订单详情表,商品表。
实际生活中,一张订单表里面应该包含多种商品,而一种商品也可以出现
在多个订单里面。这就是订单与商品多对多的关系。这是两个独立的表,通过
中间表订单详细表来维护多对多的关系。订单详细表中分别引用订单表的主键
商品表的主键作为他的外键,这样一份订单详细表的一行数据就可以说明某个商品和
这个商品属于哪个订单,实现多对多的关系。至于人和订单的关系,我觉得是一对多,
生活中一个用户可以下多个订单,数据库表设计中只要在人表中引用订单表的主键作为外键即可。
希望对你有帮助。我建议在纸上画出这几张表,填充一些数据理解就清晰了。当时我们老师也是
用这种模拟的方式帮助我们理解的。

先把业务逻辑搞清楚,一个订单详情中应该包含多个商品信息吧

把每张表的字段和表与表之间的关联关系弄清楚,然后再把一个项目的3层结构和MVC模式弄明白,就可以了

做多表链接时最好的办法就是画草图 这样比较生动

订单和人是 一对一的关系。
这个说错了,人和订单是一对多关系。

订单和商品是 多对多的关系。
对的,一个订单可以包含多个不同的商品。
当然,一个商品可以包含在不同的订单中。

你要相信自己,相信常识。