2

语境

我目前正在开发一种用于管理订单以及在技术人员和服务人员之间进行沟通的工具。产业背景是广播和电视。多个客户期望每个媒体文件都按照自己的规格制作,这意味着即使在单个客户订单的有限范围内,工作流程也会有很大差异。

一位客户可以在一天要求一个 SD 文件,而下一天要求一个包含多达 14 个文件的完整 HD 包......在 MySQL 数据库中,我试图存储有关构成工作流的所有小任务的准确信息,在多种形式:

  • 每次完成任务时的 DATETIME 值,用于准确跟踪
  • VARCHARs 中公司文件系统中新创建文件的路径
  • 归档 TEXT 值中的背景信息(用户评论等信息,例如,当事件发生并阻止向前发展时,他们可以在此提要中对此进行评论)

将其乘以 30 种不同的文件类型,这对于单个表来说太多了。所以我想我会按客户分解它:每个客户一张表,这样任何订单只需要使用一张不操作超过 15 个字段的表。尽管如此,当客户有 9 种不同的转码规范并且特定订单只需要一个时,这仍然是一个非常严格的解决方案。我想我需要为每个转码字段添加标志字段,以指示该特定订单需要哪些字段。

概念

然后我有一个疯狂的想法,也许我可以创建一个临时表以在订单运行时持续(范围可以从大约 1 天到 1 个月)。我们很少同时运行超过 25 个订单,因此不会太拥挤。

这个想法是为每个订单量身定制一个表格,消除对标志和不必要的永久空字段的需要。订单完成后,表格将被刷新,JSON 编码,转换为 TEXT 或 BLOB,以便稍后在需要更改时恢复。

如果 DBMS(尤其是 MySQL)曾经存在过,您是否有过从此类实践中苦苦挣扎的经验?这听起来像是一个可行的选择吗?我很高兴尝试(我已经开始了),我正在寻求建议,以便继续前进或停下来。

感谢您的输入!

4

1 回答 1

1

嗯,当然可以。但是,您不能将 MySQL 临时表用于此类长期存储,您将不得不使用“普通”表,并有一些清理程序......

但是,我不明白为什么单个表的数据量过多。如果您的查询由于大量数据而开始运行缓慢,那么您应该在数据库中添加一些索引。我还认为还有另一个缺点:以后构建报告会更加困难,当您有 25 个具有相同类型数据的表时,您将必须运行 25 个查询并合并数据。

我不明白这一点,真的。相同种类的数据应该在同一个表中。

于 2012-04-08T08:34:43.490 回答