我一直在阅读“一对多”数据库,但我很难理解在我的案例中实现解决方案的最佳方法。
我想要一个mysql数据库来记录哪些员工在工作中读过某些培训手册。
所以我有一张员工表。我有一张分发表。
我想记录员工是否点击说他们已经阅读了分发的文件。
我的employee表包含id、name和email。
我的分发表有id,标题
我最好在employee表中添加一个字段,其中包含一个“分发id”列表,以显示他们读过哪些分发?
我需要能够很容易地搜索,以显示什么百分比的员工阅读了一个特定的手,我认为我的方法会使这非常困难?
我不能在员工表上有单独的字段,如讲义1、讲义2等,因为新的讲义将定期添加。
我相信这一定是一个常见的问题,所以想知道是否有人可以告诉我最好的解决办法?
谢谢
1条答案
按热度按时间wydwbb8l1#
我想你需要一个桥接表来记录员工和分发记录之间的关系。像这样:
每次新的讲义出来时,您都会在讲义表中插入一条记录。然后,当一个给定的员工阅读讲义时,您将在文档中插入一个新记录
Employee_Handout
table。您可能不需要持久化非读取,因为它们很容易被检测为不在桥接表中。此列的主键可能是
(EmployeeID, HandoutID)
,假设您只需要一条记录,记录员工阅读给定的讲义。这也意味着给定的员工/分发关系只能持续一次。