我正在设计一个数据库,我想知道;
我能用疑问回答这个问题吗?员工从这些培训中获得了多少技能?
这是一个很好的结构吗?
id session_name Skill impact sugg dept function training_value training no
1 PHP Software 3 Sales 2 100usd 1
2 PHP Software 3 Finance 2 100usd 1
3 PHP communication 2 Sales 2 100usd 1
4 PHP communication 2 Finance 2 100usd 1
5 ASP Software 4 Sales 2 200usd 2
6 ASP Software 4 Finance 2 200usd 2
7 ASP database 1 Sales 2 200usd 2
8 ASP database 1 Finance 2 200usd 2
attended training table
id student_id training_no
1 1 1
1 1 2
student table
id name department
1 John 1
2 Mary 2
department table
id name
1 sales
2 finance 最后,我需要为每个学生找到技能。
john
software 7
communication 2
database 1
total spent
john 300 usd
total spent by department
sales 300 usd发布于 2017-08-08 12:38:37
在我看来,您的模式还可以。
然而,你应该考虑实体和关系。
你的实体似乎是培训,人员和部门。
你有很多:很多人的关系:培训。那很好。你有一个:很多部门的关系:人。这也很好。
看起来你想要某种培训的关系:部门。我猜在这里,但是您的培训表中有一个sugg dept列。这和你的部门表有直接关系吗?
你是否真的需要一个名为“出勤”的额外实体,而不仅仅是一个多到多的人际关系人:培训。你想记录一个人什么时候接受训练吗?你想记录一下这个特殊的出勤费用吗?如果有小测验,他们会得到什么分数呢?
在这种情况下,你会希望建立这样的关系:每个人都有零或更多的出勤率,每次出勤都只有一次培训,而每一次培训都有零次或更多次出勤。
我的观点是:仔细思考你的实体和关系,结果将是一个很好的表格设计。
请允许我换一种说法:你想在你的数据库中捕捉真实世界的哪一部分?在现实世界中,你希望你的数据库有什么价值?在你的申请中..。
在现实世界的这个角落里还有什么其他有价值的东西吗?老师们?经理?场地(教室)?设备?顾客?
我的观点是,找出你的实体--有价值的物品--以及它们之间的关系。然后编写表定义。
https://stackoverflow.com/questions/45568259
复制相似问题