【发布时间】:2023-03-17 12:32:02
【问题描述】:
我正在寻找有关我正在构建的东西的建议:我有一个 PHP 应用程序,它可以创建、更新和删除记录,但它紧密集成在一个基于非 sql 的旧数据库中,而且速度真的很慢当您开始进行大量数据库调用时。 我想为用户提供更多的后台体验,这样当用户创建或编辑某些内容时,所有变量、数组和对象都需要写入 MySQL 数据库,然后后台脚本将启动以读取这些记录并处理对遗留数据库的请求。
所以我需要一个跟踪任务的表,然后需要另一个跟踪所有变量、对象、数组及其值的表。
这就是我认为第二个表的数据库结构必须是:
- 用于存储 task_id 的列
- 如果 var 是数组或对象,则存储一列,如果是简单 var,则为 NULL。
- 用于存储数组/对象变量名称的列。
- 如果它是一个对象的列,则存储它是对象的类型。
- 用于存储数组/对象组 ID 的列。 (用于跟踪哪些变量属于对象/数组)
- 在对象/数组中存储简单变量、方法或名称的列
- 用于存储 var 值的列
这里有几个例子:
1 | NULL | NULL | NULL | NULL | 'foo' | 'bar'
1 | 'array' | 'foo_array' | NULL | 1 | 'foo' | 'bar'
1 | 'array' | 'foo_array' | NULL | 1 | 'foo2' | 'bar2'
1 | 'object' | 'foo_obj' | foobar_object | 2 | 'foo_method' | 'bar'
1 | 'object' | 'foo_obj' | foobar_object | 2 | 'bar_method' | 'foo'
这似乎是一种过于复杂的方法吗?我疯了吗?有人能想出更好的方法吗?
谢谢。
【问题讨论】:
-
听起来这种方法可能会使体验变得更糟,因为在处理队列之前不会将用户交互写入您的数据库。有什么不能迁移的原因?
标签: php mysql database-design