mysql - 需要帮助为食品银行设计 ERD

标签 mysql sql erd

这是我第一个校外项目,所以我生疏了,缺乏实践。

我想创建一个数据库,但我不确定到目前为止我是否做得很好。我需要一些关于报告表的帮助。

情况:

  • 食物银行有多个分发食物的机构
  • 每个机构都必须提交一份报告,说明从一长串邮政编码中为多少家庭/人服务。
  • 我想在 Report to Zips 表上放一个 fk。但这会导致无法选择多个 zip 吗?

也许我离题太远了。有人对我有什么建议吗?

enter image description here

最佳答案

此表的更好名称可能是 FoodService 或其他名称。我想您真正想要最终得到的报告类型不仅仅是此表中的一行,因此将其命名为 Report 有点令人困惑。

在任何情况下,每个报告都是 {Agency ID, ZIP code, Date} 的唯一组合,当然 Agency ID 是一个外键。正如您所指出的,此表中的其他列将是家庭数量和服务人数。这意味着每个代理机构-ZIP-日期组合都有行,如下所示:

Agency   | ZIP   | Date   | FamiliesServed | PeopleServed
Agency A | 12345 | Jan-12 | 100            | 245
Agency A | 12340 | Jan-12 | 20             | 31
Agency B | 12345 | Jan-12 | 80             | 178
Agency B | 12340 | Jan-12 | 0              | 0

这些总数是否也按“程序”分割?如果是这样,程序需要成为该表主键的一部分。否则,程序不属于这里。

最后,除非您要开始存储关于邮政编码本身的数据,否则您不需要邮政编码表。

关于mysql - 需要帮助为食品银行设计 ERD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14016569/

相关文章:

c# - OVER 子句中的 SQL ORDER BY 与 CLR 聚合不兼容?

ruby-on-rails - rake db :migrate 后重新生成 ERD

SQLite ERD( Actor 与工会的成本)

mysql - 多个最大结果

mysql - 如何加速MySQL查询: order by count

mysql - 更新另一表的一个字段

java - "Should I use multiple indices in Solr?"和其他一些快速 Q

php - 从 MySQL 填充 PHP 中的两个选择标签并取消第一个标签中选择的条目

sql - SQL Server 中的覆盖索引和覆盖查询是什么?

SQL ERD-主键出现两次