CRUD可不可以是CR(DC)D

铜臂阿铁木 2012-12-21 09:38:09
加精

希望大神们给分析分析。

我个人感觉CRUD可以是CR(DC)D, 而且有些时候性能会更好。
...全文
1482 32 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
ghosthjf123 2012-12-24
  • 打赏
  • 举报
回复
这个好像不一定吧。
脆爽 2012-12-24
  • 打赏
  • 举报
回复
理论上是口以的 但一切要以实际出发
望舒 2012-12-22
  • 打赏
  • 举报
回复
楼主,无聊,看心情吧,一把更新要不删除之后新增加快些毕竟io小些,毕竟数据库打部分的时间都是花在io上。
笑莫问 2012-12-22
  • 打赏
  • 举报
回复
文件系统存储没用过,数据库更倾向crud,来学习了。
oversize_forever 2012-12-22
  • 打赏
  • 举报
回复
看不懂看不懂
  • 打赏
  • 举报
回复
反过来说,如果你确实是“先删除、再新增”地去操作,那么就承认自己是“先删除、再新增”就好了。完全没有必要说“你们熟悉的Update概念都被我颠覆了”。
  • 打赏
  • 举报
回复
如果你承认这不是在讨论设计,而纯粹是一个技术问题,那么这是可以的。但是假设你妄图以此来说服真正的负责业务逻辑的项目开发管理人员,这往往是一厢情愿的。 一旦需要从设计上考虑问题,那么所有的什么“技术”就是神马浮云、都可以重新编写代码。 一旦需要从设计上清楚地去定义“更新、删除”的不同业务逻辑含义,并且围绕着不同业务逻辑去编写业务触发机制,那么很多事情该不该一厢情愿地胡乱联系,这才清楚。每一种不同的操作都有不同的流程,就好像“你换一个女朋友”不等于“把前一个女朋友穿越回到从前不认识你的那个时期”一样,在实际设计上人家都会对每一个具体的动作定义不同的业务逻辑。 只有某些不管不顾的程序员才会随便因为一点技术理由来一厢情愿地随便修改业务逻辑。
铜臂阿铁木 2012-12-21
  • 打赏
  • 举报
回复
引用 13 楼 peng_bin1989 的回复:
自己的一些看法 数据库中,索引是B树,更新的代价是查找一次,删除和插入会引起索引的重构,当你数据库索引字段比较多的时候,就不要为了省自己编写代码的工作量去降低工作性能,当然,非数据库的就有时不如删除插入了,不过要清楚这两者行为大多数情况下会有差异,尤其是牵扯到索引或者数据重复唯一性等
哈哈,索引可以不建立。至于性能上的问题,我感觉如同曹版说的吧,因库而异。
遛弯鱼 2012-12-21
  • 打赏
  • 举报
回复
自己的一些看法 数据库中,索引是B树,更新的代价是查找一次,删除和插入会引起索引的重构,当你数据库索引字段比较多的时候,就不要为了省自己编写代码的工作量去降低工作性能,当然,非数据库的就有时不如删除插入了,不过要清楚这两者行为大多数情况下会有差异,尤其是牵扯到索引或者数据重复唯一性等
铜臂阿铁木 2012-12-21
  • 打赏
  • 举报
回复
引用 11 楼 caozhy 的回复:
V一下,"csdn 300万.zip"含金量更高了。
高级黑了。
threenewbee 2012-12-21
  • 打赏
  • 举报
回复
V一下,"csdn 300万.zip"含金量更高了。
铜臂阿铁木 2012-12-21
  • 打赏
  • 举报
回复
引用 9 楼 caozhy 的回复:
当然啦。如果你使用了不定长的记录,而新记录比原来的长,为了节约存储,系统使用可变存储空间保存记录,显然直接更新(将记录后面的数据向后移动,腾出空间再插入)的效率要比删掉重建的差很多。从数据库系统的设计看,它当然会采用符合它设计的有利于性能的方法,难道还需要等你越俎代庖帮它优化?
哈哈,我从来不敢去弄什么优化数据库。因为我对数据库的了解不是很多,原理上懂得也不多,只是会用一部分功能而已。 所以我就开始畏缩,不敢面对数据库,到现在就有了想扔掉数据库的想法,才不会去优化他呢。 曹版……我用的不是数据库,是文件系统,拿出初学编程时期的想法重新审视,最近闲的蛋疼啊。 看了通知才知道,曹版紫v了
threenewbee 2012-12-21
  • 打赏
  • 举报
回复
当然啦。如果你使用了不定长的记录,而新记录比原来的长,为了节约存储,系统使用可变存储空间保存记录,显然直接更新(将记录后面的数据向后移动,腾出空间再插入)的效率要比删掉重建的差很多。从数据库系统的设计看,它当然会采用符合它设计的有利于性能的方法,难道还需要等你越俎代庖帮它优化?
铜臂阿铁木 2012-12-21
  • 打赏
  • 举报
回复
引用 7 楼 microtry 的回复:
我猜想,楼主是不想去编写update的代码,才会想到评估这种方案
喵酱真是善解人意啊。 当时初学编程,懒得要死啊,最懒得写的就是update。 不过现在回过头来看看当初的想法也并非一无是处。 比如非数据库设计的存储系统,这里一切事务都要自己手动编写,那么Delete+insert反而更实用了。 这个非数据库设计的存储系统我用在了手机里面,虽然SQLite在移动端有很好的表现,但是现今的我更懒了……一句sql语句都懒得写。
缪军 2012-12-21
  • 打赏
  • 举报
回复
我猜想,楼主是不想去编写update的代码,才会想到评估这种方案 如果真是这样,这个只需要设计手段就能解决, 最简单的,现成的手段就是利用ado.net, insert,update,delete和一些简单的查询都不需编写代码
缪军 2012-12-21
  • 打赏
  • 举报
回复
对于msSqlserver,微软就是采用Delete&Insert处理Update的, 但是,这是系统事务, 如果楼主想自己这样做,你能保证自定义事务的可靠性么? 还有一个最要命的问题,就是并发
铜臂阿铁木 2012-12-21
  • 打赏
  • 举报
回复
什么东西什么结构什么数据,各种各样都可以增删改查。 我就是问问,大家有没有这么用的。
铜臂阿铁木 2012-12-21
  • 打赏
  • 举报
回复
引用 3 楼 SocketUpEx 的回复:
CR(DC)D 似乎是把更新换成先删除再插入? 性能差了好多个级别啊
你这种说法,仅仅是数据库这一个方面。
SocketUpEx 2012-12-21
  • 打赏
  • 举报
回复
CR(DC)D 似乎是把更新换成先删除再插入? 性能差了好多个级别啊
铜臂阿铁木 2012-12-21
  • 打赏
  • 举报
回复
没人理会这个帖子么? 这个想法是我学习编程的初期想到的
加载更多回复(12)

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧