【发布时间】:2021-09-13 16:35:07
【问题描述】:
我现在从事客户项目已有一段时间了。技术栈包括laravel8后端,MariaDB作为数据存储,Quasar(基于vue)作为通过REST API通信的前端。这种设置已经为他们服务了一段时间,现在他们正计划扩大他们的客户群,这意味着
- 更多并发用户
- 正在生成更多数据
- 数据库变得臃肿
我有兴趣了解扩展系统的正确方法,并对以下问题感兴趣
- 由于数据库是关系数据库,假设他们有一个学生为其下订单,3 年后该学生离开了,他们决定删除该学生。您如何处理这种情况以防止旧数据崩溃?不要从存储中物理删除并只是隐藏?
- 一些文章建议引入二级甚至三级数据库,并在保持活动数据库轻量级的同时继续将旧的未使用数据迁移到那些数据库。这是一种好的方法吗?
- 我可以探索哪些资源来更好地了解系统扩展过程。
- 在这样的数据库中实现常量属性更改的正确方法是什么。例如
John Doe在六年级。他有考试记录,图书馆记录,费用记录等。由于这是关系数据,我们会在孩子进入不同年级时更改孩子的数据,例如 8 年级,有人试图在他 6 年级时获取他的图书馆记录,作为关系数据,它是将显示更新的成绩。他们目前有一个视图表,其中包含student_id、grade_id、join_date、leave_date和leave_reason
谢谢
【问题讨论】:
-
1) 您可以通过设置标志来“删除”一行。这有利于在保持活动行数不变的同时维护历史记录。有时,单独的历史记录表更好。 2)我会使用历史表而不是多个数据库和数据库引擎。 3) 确保您的数据库已完全规范化。根据需要升级您的数据库服务器。 4) 同样,维护适当的历史记录表。保存维护 John Doe 六年级记录所需的一切。
-
老兄,为什么不把它作为答案发布?
标签: database-design architecture system upgrade