我想我会 发表于 2016-11-28 00:11

本帖最后由 我想我会 于 2016-11-27 23:30 编辑

gaokx 发表于 2016-11-27 22:01
1:数据库一张表里面只有定义为key的行能设置为自增.一张表你可以定义多个key,但是一张表只能设置一个子增列 ...
还有一个3:

等我明天去看看是不是可以直接返回得到保存的值,关键如果你entity是空的,得到entity也没用啊,怎么得到主键啊,没有对应的属性,如何得到zahl呢?

雪候鸟 发表于 2016-11-28 01:39

本帖最后由 雪候鸟 于 2016-11-28 00:54 编辑

无需考虑任何数据库,无需虑任何orm, 直接告诉你们架构,只要保持max+1而且还要高并发的主键,直接在任何数据库都不行。因为递增主键是顺序排列,直接导致b+树数据块上的强烈竞争,一般每个数据块上的事务数量是受限制的。如果要做,你需要在application这层加个queue,事物提交只是写入queue种,然后在批量写入到数据库中,一些国内的”秒杀“的业务模式都是这么做,用queue来”消峰“。

adgjl 发表于 2016-11-28 09:47

如果递增主键没有特殊含义的话,可以考虑给这个表加一列uuid,前端拿uuid当key使用,后端慢慢保存,早点晚点就无所谓了。

leelight 发表于 2016-11-28 16:07

雪候鸟 发表于 2016-11-28 01:39
无需考虑任何数据库,无需虑任何orm, 直接告诉你们架构,只要保持max+1而且还要高并发的主键,直接在任何数 ...

如果这么做,楼主首先哭倒在厕所,因为他要完成这个模块

leelight 发表于 2016-11-28 16:07

adgjl 发表于 2016-11-28 09:47
如果递增主键没有特殊含义的话,可以考虑给这个表加一列uuid,前端拿uuid当key使用,后端慢慢保存,早点晚 ...

我也是这个方案

雪候鸟 发表于 2016-11-28 16:29

leelight 发表于 2016-11-28 15:07
如果这么做,楼主首先哭倒在厕所,因为他要完成这个模块

因为架构没脑,最基础的数据库知识都没有,还做架构,其实大部分编程也很差。不过做架构的大多都这样,不过还是拿高薪。

我深深记得我上个公司,脑袋一热架构大伽门就要把财务系统数据库从oracle迁移到db2, 结果可想而知。事物模型两个数据库就很不同,结果错账一堆,当然最后还会骂,数据库多烂多烂,程序员多差多差编程时不考虑兼容性。{:2_238:}

雪候鸟 发表于 2016-11-28 16:31

adgjl 发表于 2016-11-28 08:47
如果递增主键没有特殊含义的话,可以考虑给这个表加一列uuid,前端拿uuid当key使用,后端慢慢保存,早点晚 ...

你这个答案不对,正确答案是:SAP。{:2_227:}

shrek_munich 发表于 2016-11-28 17:35

我想我会 发表于 2016-11-27 22:59
谢谢回复

1. 我测试用的数据库是Oracle, 我试过1. 插入空entity,entity没有任何属性, 出现上面的错 ...

很久不关心底层数据库的事,所以如果不切合现在的数据库技术表笑哈
就个人意见,如果要求高并发,你把这个类似uid之类的事情依赖于transaction不现实吧,你不能在内存的层面自己做一个cache吗?每一个有请求返回一个自增的id,然后你后台怎么把cache写数据库可以单独实现,你所有别的问题都可以在内存cache的层面很容易解决

jackylover1314 发表于 2016-11-28 18:31

小辣椒这个orm 其实还是有他自身的特点的, 轻量级的解决方案, 同时还是数据库的连接池。同时它还自己有个UI 你能通过那个生成xml。xml文件是必须的, 你无论用什么orm的framework都是有不同的xml.
当然很多都不用你自己写,通过ui 就能生成。
不过我记的cayenne的framework, 在主键递增上似乎好像是你要从code上给值,具体的我忘了,好几年前用过这个orm 其实用多了你就会发现都是差不多的。
对于并发性, 这个在数据库的层面都会解决,你要做的是看好用那个数据库, 然后查查他的并发是如何配置的。。。
感觉你想的问题不大到点上, 使用framework的目的就是为了解决一写重复性的问题,你提的问题在不同的层都有解决, 只是要看你具体用什么技术,然后去查他是怎么做的。

我想我会 发表于 2016-11-28 22:17

谢谢上面各位高人和大神!


问题已经解决了!-------今天找头儿讨论了一下,说了下我的看法,结果这货挠着脑袋想了半天,然后告诉我说--------其实他也还没想好该怎么做,这个任务不重要,还有很多更重要和紧急的任务要做,这个任务先放到一边去,等以后再说吧................

X他奶奶的, 这货真是个搅屎棍!平常工作态度就是马马虎虎的,就在那混,你都没想好的东西就让别人做,还告诉人家这不行那不行的,你这不是搞笑吗,你叫别人怎么做,浪费别人的时间?! 所以一开始我就觉得他在坑我!!

我们这个头儿,工作态度真的很差劲!经常在领导面前装的忙前忙后,其实一点都不认真!经常闹这种自相矛盾的笑话,而且经常推翻自己说的,好几次按他的思路开发,大家辛辛苦苦做好了,结果他又推翻了之前的思路重做,搞的有的同事忍不住跟他发火,真是浪费我时间!!

要说他水平还可以的,数据库可能不是强项,因为目前这个系统并发方面要求并不高,他的强项在模块整合和通讯,但这货真是个搅屎棍,明明是他没计划乱分派任务,结果成了我浪费2天时间nichts schaffen了,黑锅让我背,真是CTNND!
页: 1 [2] 3 4
查看完整版本: 求java数据库大神乱入!