E-R图转化成关系模型的时候,如下图:
数据库系统主要是题库管理系统,该部分E-R图主要针对于“每个用户都有一个个人题库,并且可以对其进行操作”的功能。
用户实体的主键是账号
个人题目实体的主键是题目编号
根据1对N的联系,采取合并转化,个人题目(题目编号(主键),账号(外键),分值,题目内容,参考答案,题型,所属科目,操作种类,操作时间,内容)
问题来了:
按照业务逻辑来看同一个题目编号可以有多个操作种类、操作时间和内容(因为用户可以对同一道题目进行多次修改操作),这样子题目编号就违背了主键的原则,这是什么原因呢?
回答:你可以将操作重新定义一张新的表,然后采用自增主键,这样是不会发生主键冲突的。因为你个人题目的操作是可以进行多次的,然后你可以在题目名字那里定义一个索引,后续肯定需要根据题目名字进行筛选查询,以及根据时间排序等。你的ER图没有问题,写的很好。只是涉及到一对多,且有字段冗余的情况下,分表是必然的,可以解决你的主键冲突问题和数据冗余问题