我在数据库设计中很安静,我正在尝试一个测试用例来跟踪学生。 在下图中,学生可以在学校或俱乐部。为此,我在LocationId上创建了一个作为全球学生身份的地方。 规范化数据库表
但问题是我根据TypeId来确定其俱乐部或学校。 所以在我的数据访问查询中,我必须提供案例。伪代码是:
if TypeId == 1
search in club for the LocationId and get the clubId.
else if TypeId == 2
search in school for the LocationId and get the schoolId.
我该如何摆脱这些情况,仍然保持规范化的规则。
非常感谢您的阅读。欢迎任何评论。 美好的一天!
不知道你是否需要'LOC_CONTAINER'表。你可以用'CLUB'和'SCHOOL'表将'left join'加入,只使用你需要的字段。 – keltar 2015-03-03 10:27:21
你的意思是完全摆脱LocationId?可否请您在解决方案中写下查询。 – ThomasBecker 2015-03-03 10:32:51
如何将您的SCHOOL和CLUB表合并在一起,并添加额外的列作为TYPE来区分它们,在这种情况下,您也可以删除LOC_CONTAINER。 – 2015-03-03 10:33:39