【问题标题】:Storing data with multiple parts to it per submission每次提交时存储包含多个部分的数据
【发布时间】:2018-03-14 13:04:53
【问题描述】:

我会尽量说清楚...

我需要存储每个事件包含多个项目的数据记录。假设在一次事件中,我有一个顾客偷了 9 块食物……1 根香蕉、3 根蓝色吃喝玩乐、2 根火星棒和 4 片橙片。

我有一个表,其中包含事件核心详细信息(日期、时间、事件详细信息等),并根据相关人员的 UID 进行标识,人员的个人详细信息及其 UID 存储在另一个表中。要求是能够运行报告以查看每个对象中有多少被盗。

对于我来说,存储这些与数据性能相关的记录的最佳方式是什么,因为这显然有可能从每个多对象事件中获取大量表格行。

我是否参考事件父记录 ID 将它们保存为多个记录,还是有更有效的方法来做到这一点?

【问题讨论】:

  • 您可以使用字段 product_id 和 person_id 编写像 table_stolen_products 这样的数据透视表,这样您就可以通过加入这些表轻松访问产品和人员的详细信息

标签: php mysql database database-design relational-database


【解决方案1】:

作为一个起点,我会做这样的事情:

Incident_has_FoodItems 允许您将任意数量的 FoodItems 链接到您的 Incident 表。然后很容易计算每个 FoodItem 在 Incident_has_FoodItems 表中出现的次数。

当您定义数据库数据结构时,将每个项目分隔为一个表并将它们链接在一起。它们允许更轻松的查询、更好的性能、更容易创建索引,...

如果您想进一步挖掘,可以阅读普通形式。

【讨论】:

  • 非常好,@Nic。你是用什么工具做的?
  • fabForce DB Designer 4。它是 MySQL 的旧软件,但效果很好。唯一与自动生成的 SQL 相关的就是将 TYPE= 替换为 ENGINE=。快速和肮脏的数据库设置就足够了,而且免费!
  • @Nic 非常感谢您的建议。按照您建议的方式分解它更有意义。然后我只在初始搜索时请求单个事件,但可以进一步深入查看每组相关项目。 :-) 非常感谢!
猜你喜欢
  • 2015-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-06
相关资源
最近更新 更多