我正在尝试找出我的SQL数据库的表/字段的最佳组织。
让我解释一下产品的功能。我的组织每天在不同时间每周5天安排志愿者服务。我正在制作一个程序,允许用户登录,选择志愿者的日期/时间,并在选定的时间注册志愿者。用户将选择他们带来的志愿者数量和他们带来的汽车数量。每个志愿者外出至少有2辆车和3个人。用户必须在获得批准的列表中。
我不知道如何最好地组织所有这些数据。我无法为汽车用户表和他们带来的志愿者数量添加字段,因为这可能会根据他们注册的日期而改变。
我目前的想法(糟糕):
VolunteerOutings表
- DateTime time
- Array of userIds (will be used to access CarVolunteerInfo)
用户表
- int userId
- varchar email
- varchar pass
CarVolunteerInfo表
- DateTime time
- int userId
- int car #
- int volunteer #
多人可以报名参加一次郊游,我希望能够看到每个郊游的注册人以及他们带来了什么。此外,我希望能够运行报告,以查看他们注册的所有过去和将来的外出。
如果这个问题太模糊或理论上,我很抱歉。我很乐意根据您的要求改进我的问题。
答案 0 :(得分:2)
三条经验法则:
所以 - 我们显然有类似的东西:用户,郊游,车辆和项目(对于多次外出的事情)。然后,您将拥有链接表(与会者=外出,用户等)。
然后你会详细介绍。这些车辆 - 是一个用户负责带来每个?它们有多大?我们是否需要确保有#个用户参加?我们关心每辆车的进展情况吗?
最后,请确保您没有重复信息。 Dave的名字可以从他的用户名中查找,他的车内座位数量可能不会从郊游变为郊游(直到他改变车辆......哎呀 - 将其添加到工作流程中)。
你的样本看起来没问题,只是希望经过几次完善这个过程。哦 - 如果可能的话有一些脚本:
这会有很多帮助。如果您使用PostgreSQL,pgtap之类的东西可以帮助您进行测试。