首先,我不是程序员,这是我第一次从事数据库创建工作,这种实现是我目前正在实习期间确定的需求的一部分。
我目前正在开发MS Access数据库,该数据库将用于管理与运动教练的工作合同。该实现旨在迁移始终存储在平面Excel数据库中的一系列数据。
现在我在如何实现进行某些搜索所需的功能方面遇到问题。
Table A
大约有200名培训师,每个培训师都有自己的ID号和姓名,这些姓名和名称用于管理与其他表格的关系(诸如社会保险,电话号码,地址等)。 ID
是关键。如示例所示,它由三个字段构成。
[Trainer_ID] [Name] [Last_Name]
1 Pedro Pérez
2 María Gómez
3 Hollman Vivas
Table B
是我们处理合同的(目前有20种)运动的列表。它具有一个自动编号字段作为键,每个运动的名称均作为短文本(仅使用小写字符)。可以根据需求和培训师入学情况,通过更多运动来更新列表。
[Sport_ID] [Sport_Name]
a Soccer
b Basketball
c Tennis
最后,Table C
以培训师ID为密钥存储每个培训师所拥有的特定证书。在Excel版本中,它具有四个字段。
[Trainer_ID] [Sport1] [Sport2] [Sport3] [Sport4)
1 Soccer
2 Tennis Soccer
3 Tennis Basketball Soccer
Table C
中的所有数据都像这样被加扰。
如您所见,每位培训师都拥有一个或多个认证,这些认证几乎可以实现无穷无尽的组合(例如1abc
2c
3ac
)。更不用说,最终我们可以拥有一个拥有五个或更多认证的培训师,并且数据库的设计没有考虑到这一点。
我需要找到一种在MS Access数据库环境中理解这些数据的方法,但实际上并没有想到最佳的处理方法,
考虑到由于我们处理的信息量巨大,我们需要可以通过从.csv
文件批量上传来轻松更新数据,也可以通过用于手动验证的表格来更新数据。
需要时,可以在查询中使用它来搜索特定能力。
我尝试做的第一件事就是保留数据的原样(包含四个运动场),但是事实证明,处理起来很麻烦。
然后是多值字段,该字段在10分钟后便被删除,因为我对此主题的研究表明这是一种非标准的实现,并且无法通过批量上传到基础来进行更新。
进一步的研究将我带到联结表,但是考虑到网络上的大多数示例都是基于两个表而不是三个表,因此我仍然没有弄清楚如何构造它。
我当时正在考虑不使用关键字段的认证表(Table C
),而只是重复使用[Trainer_ID]
来存储零散的信息,但是我担心这种标准化不足会导致出现问题。未来。
正如我之前所述,数据库应该能够以一致的方式存储,显示和更新每位培训师的资格,无论他们拥有多少证书。