1
meta 2014-11-14 21:51:09 +08:00
一个订单难道不是只能有一个客户吗,如果一个订单都有多个客户了,那么这不形成一个多对多关系了吗,这种多对多的关系显然应该拆成两个一对多关系嘛。另外,本身关系数据库处理这种事情就比较麻烦的,所以现在大家不都nosql了吗。
|
2
incompatible 2014-11-14 21:54:23 +08:00
个人愚见:
Customer中没有必要保存List<Order> 不然莫非List<Address> List<Favorite>这些都要各存一份? 通常只要提供OrderService.listOrderOfCustomer(customerId)这种服务就够了 关于你的不一致的问题: 不知你使用的是什么语言及orm工具。一些orm工具是可以支持级联删除的 我自己在这种场景下通常不依赖数据库外键或orm工具,在一个事务中先后做删除Customer和Order的操作即可 |
3
huijiewei 2014-11-15 00:03:03 +08:00
为什么要在 Customer 里面保存 Order 的关联?
按照一般业务逻辑,一个订单肯定属于一个用户的,一个用户可以有多个订单,那么这就是一对多关系,一对多关系,应该在“多”的那个实体上存储“一”的关联。 多对多关系的话,应该建立一个关联表来进行关联。 一对一,一对多,多对多这种关联是很基础的,不管是关系型数据库还是 NoSQL 处理起来都是非常成熟了。 级联删除一般自己使用事务处理。 |
4
JamesRuan 2014-11-15 08:23:05 +08:00 via Android
缺乏数据库知识的表现,这类问题前人早就思考过了。
|