各位开源的大神们,关于数据库的问题,菜鸟急需请教。。。。

上帝爱众生 发布于 2015/03/04 08:28
阅读 437
收藏 0
我学的是java,我遇到了一个问题,随着项目的不断扩大,后台数据库的关联也会越来越复杂,那么在写删除模块的时候肯定会报各种异常(因为关联很多,有可能处理不好就会异常),以前用过删除数据时采用递归删除,把和该数据关联的子数据先逐级删除掉,然后再把该数据删除掉,可是显然这样做效率很低,有没有什么好的方法呢?如果项目过大,是不是应该考虑不用关联?
加载中
0
程序猿pk公务猿
程序猿pk公务猿

1.表层面是设计是无所谓的他只是持久化的功能,你也不呀怀疑键的作用这是数据库约定俗成的.

2.一起逻辑放到对象上考虑,对象分为成员变量和成员函数,成员变量会被持久化到数据库中

成员函数用于控制对象的各种操作,你要把设计工作的重点放到对象上儿不是表上更不是表的键上

常用hibernate的人会有依赖性也就是一张表一个对象这点有些局限不要误入设计上的陷阱

0
甘薯
甘薯

我不是大神, 来凑个热闹,

你说的关联就是外键约束吧, 这是没办法的.

你必须要这么做.效率低也没办法.而且我不觉得这样效率低到哪里去.



0
麦琪
麦琪
我也是菜鸟,我觉得删除是一次性的操作,即使效率低点似乎也不是很严重吧。当然有高效的方法还是很好的。
0
牛奋Debug
牛奋Debug

生产环境上一般都不会再数据库中去建那么多的外键约束的,都是在程序中去控制

0
jQer
jQer
趴, 删到一半停电了, 哭去吧, 骚年
风清扬不会武功
回复 @jQer : 明明是一整套逻辑为什么不在一个事务里呢?
jQer
jQer
回复 @风清扬不会武功 : 明显不在一个事务里
风清扬不会武功
在一个事务里。。停电又何妨
0
宝石娃娃
宝石娃娃
说到底就是你的数据库设计不好。使用面向对象的思维去设计数据库是必须的,这样的目的是业务逻辑关系清楚, 表的关系无非是o2o,o2m,m2m。无论如何这是不变的,假设表关联的特别多,需要删除多张表这也是没办法的事情,题主说的异常,还有3楼说的停电。我就想问了 你知道这个世界上有个东西叫做事务吗? 至于效率,真的没见多慢。删除能有多慢?
0
产品哥
产品哥
数据库约束要当佐料用,不能做主菜用。一般我都不会使用外键、约束之类的,想想项目大了逻辑复杂就到处乱,逻辑变动更要命,团队开发要命的不得了,除非有专业的DBA团队。当然了对一些数据上要求严谨的,数据库上控制也是必要的。
0
alexgaoyh
alexgaoyh
删除??逻辑删除不就好了??不进行直接删除数据···
alexgaoyh
alexgaoyh
回复 @来自爪哇岛的程序猿 : 不会有问题的···都是业务数据,删了干嘛?
上帝爱众生
上帝爱众生
你是说用一个字段来表示是否已被删除吗?可是这样数据库的垃圾数据不就太多了吗?不会有什么问题吗?
0
GITTODO
GITTODO
外键约束--增删改?没用过,感觉是找死
返回顶部
顶部