我们正在为非政府组织( N )开发一个平台,通过个人志愿者( V )或志愿者通过公司完成工作( C )
NGO
公司
我需要帮助的地方?
我创建了非政府组织和单一的志愿者关系。我很困惑如何使用相同的表,但允许像公司这样的新实体进入非政府组织和志愿者之间,并管理时间验证和活动管理。
时间验证非常重要,因为它将用于显示非政府组织,公司和志愿者的社会公平平衡(个人工作以及通过公司为事业工作)
我为非政府组织和志愿者创建了下面的ER图,需要创建公司的一部分。
答案 0 :(得分:3)
我不确定您是否需要更改您的架构,甚至根本不需要。你的架构需要一个应用程序来使它做任何事情 - 你不能在这里实现所有的逻辑 - 一些/大部分逻辑将在你的应用程序中。
据我了解,您的规范说所有实际的志愿者工作都是由个人完成的,其中一些人可能与公司有关,有些则不是。您的架构已经捕获了它。
我认为这几乎是你所需要的。当你说:
在验证完成工作的时间时,可以通过两种方式完成。 1公司可以集中说V1 V2 V3已经完成2小时3小时和2小时,并提交非政府组织验证或允许其每个员工手动处理,并允许他们提交。
这已经涵盖 - 要么每个人输入自己的工作记录,要么应用程序允许公司为他们执行 - 然后非政府组织以相同的方式验证这些记录,无论是谁输入。
我创建了非政府组织和单一的志愿者关系。我很困惑如何使用相同的表,但允许像公司这样的新实体进入非政府组织和志愿者之间,并管理时间验证和活动管理。
让我们通过一个有用的例子来说明这两个用例,以确保我们已经涵盖了所有内容:
个人注册,在volunteers
表格中创建一行。他们注册活动,在ngo_activity_applications
表格中创建一行。
非政府组织批准他们,在ngo_activity_members
表格中创建一行 - 并删除ngo_activity_applications
表格中的行,或更改它的status
- 规范。目前还不清楚。
个人会做一些工作并在应用中记录时间,在ngo_activity_time_validations
表格中创建行。
非政府组织验证以某种方式完成的工作,然后告诉应用程序。这可能会更改ngo_activity_time_validations
表中行的状态,并在volunteer_validated_times
表中创建一个摘要行或匹配行。规格不清楚cost_per_hour
来自何处?
公司注册并上传包含3名志愿者的CSV文件。这会在companies
表中创建一行,在volunteers
表中创建三行,在{{1中创建3行链接表。
公司志愿者1单独注册活动,一切按上述步骤进行。
公司报名参加不同的活动,并志愿为其中的所有3人提供服务。这会在company_volunteers
表中创建3行。
非政府组织批准所有三个,在ngo_activity_applications
表格中创建三个新行 - 并删除ngo_activity_members
表格中的行,或更改其ngo_activity_applications
- 规范。目前还不清楚。
志愿者做了一些工作,公司代表公司志愿者1和2在应用程序中记录时间 - 公司志愿者3记录她自己的时间:
公司志愿者1和2
公司使用该应用程序代表他们记录时间 - 在status
表中创建2行。
公司志愿者3
Volunteer 3公司使用该应用程序记录自己的时间 - 在ngo_activity_time_validations
表中创建一行。
非政府组织验证以某种方式完成的工作,然后告诉应用程序。这可能会更改ngo_activity_time_validations
表中行的状态,并在ngo_activity_time_validations
表中创建一个摘要行或匹配行。规格不清楚volunteer_validated_times
来自何处?
通过查询cost_per_hour
表volunteer_validated_times
编辑JOIN
表,您可以查看任何个人记录的验证时间。您还可以通过执行相同的查询以及加入volunteers
表来查看公司已记录的已验证时间。
您可能希望在company_volunteers
表中添加company_entered
标记,以便您可以区分个人输入的记录和公司代表个人输入的记录。如果记录与您的应用程序相关,您可能还想添加在此表中创建条目的人员的ID。
可能希望在ngp_activity_time_validations
表中添加hourly_rate
列,以便在volunteers
表格中创建行时用作默认cost_per_hour
。