Laravel 分表后的增删改查如何设计才够优雅?

最近自己在写一个项目,涉及到了分表的问题。但是在社区和 Google 查了许久并没有看到真正能有启发的帖子和文章,唯一一篇沾得上边的博文 Laravel Eloquent 分表方法并使用模型关联 却还是离自己想要的相差甚远。无奈只能自己发帖来问各位大神。

先说下我的使用场景吧,我的项目涉及 3 个 Model:bookschapterscontents。其中 chapterscontents 需要分表。规则是按照 bookId 对 10 取余。

参考博文中只是简单提到了普通查询和关联模型的查询,但我想说的是增改好像没查这么简单啊,那个写法还是套不了。还是我理解有问题。。。我的当务之急不是如何做模型的关联,而是解决多表的增删改查问题。

  1. 按照参考博文所写,那我岂不是要在 model 的每一个方法中都去设置一次表后缀?试过在构造函数中做这件事,但好像也有问题,没有走通。。。
  2. 按照参考博文所写,我经常会出现表名重复设置后缀的问题。比如 chapters_1_1_1,很显然这个表是不存在的。知道是重复设置了表名,但没有想好切入点,到底在哪可以规避这个问题。

以上问题希望大家伙看到帮忙分析下,如果有关于 Laravel Model 查询的源码分析会好,感谢!

代码是写给人看的,顺便给机器运行一下。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
CrazyZard
最佳答案

数量在百万级根本就不需要,如果是日数据量在百万的话,才考虑去分表分库。在没有达到这个级别分表徒增烦恼

3年前 评论
luci (楼主) 3年前
CrazyZard (作者) 3年前
luci (楼主) 3年前
讨论数量: 5

看了你贴的那个博文,老实说我不是太赞同表名加后缀来关联两个表的设计方法,还是应该用外键约束来确保数据完整性。

“增”操作就是先INSERT books, 再INSERT chapters, INSERT contents, “删”操作就是先DELETE chapters, DELETE contents, 再DELETE books

以此类推。。

不要卡在"优不优雅这一关",先实现了再说吧。

3年前 评论
luci (楼主) 3年前

因为用中间件的比较多 mycat可以去了解一下

3年前 评论
luci (楼主) 3年前
pigzzz (作者) 3年前
CrazyZard

数量在百万级根本就不需要,如果是日数据量在百万的话,才考虑去分表分库。在没有达到这个级别分表徒增烦恼

3年前 评论
luci (楼主) 3年前
CrazyZard (作者) 3年前
luci (楼主) 3年前

我们的小说章节表 一百六十万行记录 没分表
用户消费记录表 一天增加200万行左右 这个是一天一张表 小说分销类的项目 DAU一起60W左右 ,PV在1400W的样子 百万级数据量而已 ,你是有多看不起MYSQL,用好索引两千万行记录以上在考虑分这些东西

3年前 评论
luci (楼主) 3年前
那个松鼠很眼熟 (作者) 3年前

分区表了解下

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!