为了账号安全,请及时绑定邮箱和手机立即绑定

id号应该在服务器端自增还是页面端?

id号应该在服务器端自增还是页面端?

哆啦的时光机 2019-02-20 16:25:32
论坛每个帖子都有一个id号,从1开始增长,每新增一个帖子,id增1假设帖子有三项,id,文本和时间 在后端,设计一个类Article,类里就有三项:id, text, time 现在这个id增长有两种思路:1) 利用数据库自增,id设为主键,启动数据库自增2) 页面帖子前,利用ajax请求,取得数据库当前最大号maxid,然后帖子的id设为maxid+1 2)的思路在高并发的时候有问题,有可能多人同时发帖从而ajax请求获得同样的id,然后他们的帖子都是id+1 但是如果是1),那么提交帖子的时候,帖子数据只有两项,text和time这样的话,后端可能就要设计两个类一个Article有三项,id, text, time,另一个只ArticleWithoutID有两项 text, time因为前端用户如果查看帖子,那么后端就要返回id, text, time三项了但是要设计两个类,又感觉怪怪的 大家怎么看?
查看完整描述

3 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

肯定是在服务器端自增,不然可能冲突的。
你可能会问,我都取了最大的为什么还会冲突。如果你知道为什么数据库会有锁这个概念,你就不会在这里迷茫了。
并发大的时候,可能是同时取得的最大ID,提交时,一个先一个后,就会导致一个提交失败。
另外前端数据可以伪造,作为程序员对前端的数据一定要持怀疑态度,要验证

查看完整回答
反对 回复 2019-03-01
?
HUWWW

TA贡献1874条经验 获得超12个赞

关系型数据库都可以设置自增类型的字段吧,录入数据的时候不需要指定,数据库自己处理自增id

查看完整回答
反对 回复 2019-03-01
  • 3 回答
  • 0 关注
  • 753 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号