首页 新闻 搜索 专区 学院

订单设计相关 的问题

0
悬赏园豆:5 [已解决问题] 解决于 2015-09-29 22:14

一个订单  存在不同的删除时机(逻辑删除)

1:客户 在 付款之前 或者  订单审核不同过的 时候可以自行删除

2:订单完成后, 管理员可以删除

 

在实现这个需求的时候,自己做了区分

也就是说  客户删除  与 管理员删除  被视为两种不同类型的操作

数据库也使用不同字段 记录删除状态

为嘛自己这样做呢?

  原因:因为执行删除操作的角色不同,这是业务上来说的

  另外数据库中也要记录是谁删除的,那么肯定有一个字段用于记录 执行删除操作的 用户/管理员的 ID  ,可是目前系统  管理员和 用户 是两个不同的实体,所以 如果做成同一种操作的话

记录 删除操作执行者的 ID    的值 可能是用户的ID 也可能是 管理员的ID

也是为了杜绝这种情况吧

 

不知道我这样设计好不好,自认为好。请大家看看 说说自己的看法,谢谢

算了的主页 算了 | 初学一级 | 园豆:3
提问于:2015-09-24 18:02
< >
分享
最佳答案
0

可以把删除操作封装,调用该自定义的删除操作之前获取实体的Id,你的Id应该可是识别是客户还是管理员吧,然后存到该订单数据库记录中

收获园豆:5
苏幕遮soft | 菜鸟二级 |园豆:401 | 2015-09-24 22:30

这个还真不能通过ID 来区分  客户还是 管理员

在数据库中两者是 两个表存放的 且ID 没啥区别

我是有这样一种考虑,,就算是能区分,以后查询的时候也是麻烦事

  假如说以后要看 订单是谁删除的,页面上咋地要把 操作人的姓名显示出来吧

  那么这个查询的时候 就稍微麻烦点,要通过ID (或者其他标志位)判断删除人的类型

  当然了我那样做也是麻烦,同样需要判断是何种删除

哎,无奈啊,不知道该弄更合理(后续操作,比如查询 什么的 更容易一点)

算了 | 园豆:3 (初学一级) | 2015-09-24 23:25

这么一想的话,我那样弄也不好,同样麻烦,只不过蛮烦的方式有点区别而已

 

该怎么弄好呢?  

算了 | 园豆:3 (初学一级) | 2015-09-24 23:26

@算了: 个人觉得从Id获取身份信息的操作也不是特别的麻烦;如果还不行的话,遵循第三范式原则,把Id和身份信息单独作为一个表,其他有冗余的字段也独立出来,,

苏幕遮soft | 园豆:401 (菜鸟二级) | 2015-09-25 09:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册