首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设计与三个实体之间的关系,其中两个实体没有关系

设计与三个实体之间的关系,其中两个实体没有关系
EN

Stack Overflow用户
提问于 2014-02-19 20:26:27
回答 1查看 192关注 0票数 1

试图实现一个ER模型,其中我有实体:教师,学生,论文和关系:出版,建议。教师和学生都可以发表论文,但只有教师才能为论文提供建议。我应该复制学生和教师的出版关系,还是让它看起来像一个没有师生关系的三方关系?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-19 20:50:08

听起来你可以做这样的模型:

代码语言:javascript
复制
student(student_id, name, etc)
teacher(teacher_id, name, etc)
paper(paper_id, title, text, etc)
contributor(contributor_id, paper_id, contribution_type, contributor_type)

贡献类型为enum(出版者、顾问)而类似的贡献者类型为enum(教师、学生)。或者布尔人is_publisher,is_adviser。

缺点是,这不允许从投稿人到学生/教师的外键,你也没有从顾问到老师的严格约束。表顾问(teacher_id,paper_id)允许对顾问进行约束,但仍然不允许在学生ids上使用约束或外键。

另一种选择可能是将其拆分为:

代码语言:javascript
复制
teacher_contribution(teacher_id, paper_id, is_adviser)
student_contribution(student_id, paper_id)

这将允许将数据库完全约束到预期的模型,但在某些情况下可能更难查询。

任何东西都可以接受。这在某种程度上取决于您的特定应用程序以及您打算如何查询数据。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21891651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档