- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不确定如何称呼这篇文章,但这是我的问题:
我有两个表:Online_Module
& Offline_Module
我的程序中使用这两个表来确定学习模块是在线学习还是现场学习。
现在我还有一个表叫Academy
.一个Academy
由许多模块组成。为此,我想创建以下子表:Academy_has_Module
问题就在这里。因为Online_Module
和 Offline_Module
不在同一个表中 我的值之一 Academy_has_Module
永远是null
这里有一些图片显示了这些表的构建:
如您所见,其中一个值将始终为 null
.我想知道,在这种情况下,最佳做法是什么?
最佳答案
1) 创建一个表模块,保存在线和离线模块的通用字段:
id INT,
description
material
status
category
2) 然后保留离线/在线模块表(编辑: 减去字段 - 除了 id 字段 - 你现在保留在模块表中),但让它们 FK 引用新模块表,使用模块表作为中间链接。
编辑:现在,不要用很多东西让你不知所措,但有几个问题你必须自己问答,即:- 模块只能离线/在线吗?- 如果是,我想在数据库中 100% 强制执行吗?
因为使用我的解决方案,您可以拥有一个模块并让多个离线/在线模块引用它。有很多方法可以解决它,但我认为它们会远远超出你的要求,我只是提到它,所以你知道..
关于获取信息(也许不是最好的,但这是我目前的水平,如果有人知道更好,请随时教我一个新技巧:))。 *注意:丑陋的编码,完整的编码风格太累了:D *:
select *, case
when OffM.Id is null and OnM.Id is null then 'No module!'
when OffM.Id is not null and OnM.Id is not null then 'Too many modules!'
when OffM.Id is null and OnM.Id is not null then 'Online module!'
when OffM.Id is not null and OnM.Id is null then 'Offline module!'
end --probably a different, better way to compare?
from Academy_has_Module as AHM
join Module as M
on Academy.Module = M.Id
left join OfflineModule as OffM
on OffM.ModuleID = M.Id
left join OnlineModule as OnM
on OnM.ModuleID = M.Id
但是现在,据我所知,如果你在 Module 表中添加了一个 ModuleType,ORM 框架(老实说我并没有那么多地使用它们,所以没有第一手经验),可以使用它来返回一个对象正确的类。但这对您项目中使用的整个架构和技术要深入得多,超出了这个问题的范围,甚至超出了我的实际经验。
编辑 2:好的,我又想到一件事:以某种方式将在线/离线模块表结构更改为相同是否不合理?例如在线模块:- 可以有一个导师/负责人作为 weel- 可以从 - 到日期时间开放-离线模块没有名字?-在线模块的位置将是“在线”并将表与 ModuleType 合并在一起 - 约束或 FK 到枚举表(不确定英语中的正确术语是什么)。也许有点强制,但是(同样,这在很大程度上取决于总体需求,我从来没有见过在一次迭代中添加一个简单的表格,它总是会影响某些东西并在设计中传播)可以让你的生活变得简单.有时,最好在每条记录上浪费几个字节的空间,然后试图表现得过于可爱而在后面被咬一口。
祝你有个愉快的一天
关于mysql - 做表集合时的sql正确做法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24609030/
如果您想分享更多信息,可以在这里找到整个资源 指针: https://github.com/sergiotapia/DreamInCode.Net 基本上,我的API将为其他开发人员提供
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
我不是 SCM 工具的经验丰富的用户,尽管我确信它们的用处,当然。 我在以前的工作中使用了一些不起眼的商业工具,在当前的工作中使用了 Perforce,并在我的小型个人项目中使用了 TortoiseS
所以我想知道一些我应该避免在 javascript 中做的事情以获得良好的 SEO 排名。在我的下一个站点中,我将广泛使用 jquery 和 javascript,但不想牺牲 SEO。那么您认为我应该
基本上,我想知道什么是避免 future CSS 代码出现问题和混淆的最佳方法... 像这样命名 CSS 属性: div#content ul#navigation div.float-left (真
我是一名优秀的程序员,十分优秀!