如何在 RDBMS 中表示预定事件?

2024-01-21

我必须存储可以每周、每天或每月组织的预定活动(例如上课时间)。例如,事件可以在每周一和周三或每月的第二个周四发生。有没有办法将这些信息存储在遵循 3NF 的 RDBMS 中?

编辑:这不是家庭作业;我正在和一个朋友一起构建一些东西来启发我们自己,我们希望它在 3NF 中。

具体来说,我正在尝试存储 RC 教区的弥撒和忏悔时间时间表。这些可以通过多种方式安排,例如每个星期日的 x 时间或每个星期二/星期四的不同时间。有时仅在该月的第三个星期五提供,而另一些则仅在每年的特定时间提供一次。我不仅需要存储这些信息,还需要查询它,以便我可以快速获得第二天或一周或其他时间的可用时间的完整列表。

我认为严格来说 3NF 不是必需的,但如果是的话,对我们来说会更容易,而且最好立即纠正它,而不是稍后更改我们的架构。


要记录“周期性重复”的规则,您可以从以下内容中获得灵感:crontab http://www.manpagez.com/man/5/crontab/的格式,当然,您不需要限制分钟和小时,而是需要星期、月份等。由于时间表中可能有多个(例如)工作日,出于 NF 的目的,您需要使用典型的中间表来表示多对多关系,即每行只有两个外键(一个到事件主表) ,一个工作日的表)——当然对于一个月中的几天等也是类似的。

据推测,每个预定的事件也将具有持续时间、类别、也许是位置、名称或描述。

这种形式的“正常程度”(一旦您处理了上述多对多关系的“集合”)主要取决于这些不同的属性是否以及如何相互依赖 - 例如,如果某个事件中的每个事件类别具有相同的持续时间,您需要有一个单独的辅助表,其中包含 id、类别和持续时间,并在该表中使用外键而不是重复配对信息。但是从你所说的来看,我没有看到任何本质上违反正常形式规则的情况,除了这种依赖可能性(这不是你对事件调度所指定的少量内容所固有的)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 RDBMS 中表示预定事件? 的相关文章

随机推荐

  • 如何从客户那里获取 iPhone 崩溃日志?

    有谁知道如何从客户那里获取崩溃日志 而不是手动要求他们同步并转到这个目录和这个目录并发送 是否有任何自动方法可以将崩溃报告发送到我们的服务器 您可以执行自己的崩溃日志记录PLC故障报告器 http code google com p plc
  • 使用纬度和经度时收到 403 禁止错误:地理编码

    我们的网站可以选择插入您的邮政编码 然后与地理编码一起计算出纬度和经度 此代码多年来没有更改 但今天 如果用户尝试插入邮政编码或从昨天或在错误 远程服务器返回错误 403 禁止 之前更新它 弹出 请求数量还没有超过 2 500 所以我不认为
  • BitmapSource.Create() 方法中 DPI 的相关性是什么?

    我读了维基百科的文章DPI http en wikipedia org wiki Dots per inch 但这让我更加困惑 我没有图像上的任何 DPI 信息 我应该使用什么 DPIBitmapSource Create http msd
  • C#类型转换不一致?

    在 C 中 我无法隐式转换long to an int long l 5 int i l CS0266 Cannot implicitly convert type long to int An explicit conversion ex
  • 调用M2存储库中的jar文件

    我有一个项目 我想在当前项目的执行后阶段调用 M2 存储库中的另一个 Jar 文件 我的 POM 的示例骨架
  • TypeScript 中像 methodName() 这样的尖括号有什么用?

    如果有任何关于为什么我们在类型脚本中使用尖括号 的教程 您能帮我一下吗 例如 我在这里给出了一些代码 我需要解释 export class HomePage constructor public navCtrl NavController
  • 为什么G1GC在开始混合收集之前先收缩年轻代?

    当 G1 决定需要开始进行混合收集时 它会积极地将我们的 Eden 空间从 10g 缩小到大约 1g Heap before GC invocations 294 full 0 garbage first heap total 204800
  • sqlalchemy 强制所有连接关闭 mysql

    我们在一些复杂的单元测试中使用sqlalchemy 在每次测试结束时 我们完全使用以下命令拆除数据库drop all 有时 有人会忘记关闭嵌入单元测试深处的会话 然后 我们必须花费大量时间试图找出问题所在 并最终关闭 sqlalchemy
  • 单击 LinkBut​​ton 上的动态文本框

    我通过单击 LinkBut ton 在页面中创建动态文本框 但是 之后 如果提交页面 我找不到动态创建的项目 因此无法将信息发送到数据库 protected void lbAddTag Click object sender EventAr
  • JQGrid 获取特定列的所有值,而不考虑分页

    我正在使用 json 从数据库中提取数据 如何获取特定列的所有值 我想获取 PrimarySkill 列的所有值 全套值 无论分页如何 var texts listTableSupply jqGrid getCol PrimarySkill
  • 如何从 C# 更改 PowerPoint 中 TextRange 的字体颜色?

    我使用 C 创建了一个 PowerPoint 演示文稿 PowerPoint Application powerpointApplication PowerPoint Presentation pptPresentation PowerPo
  • Junit 与 new Date()

    当我有以下方法时 junit 测试会是什么 Override public void saveLastSuccesfullLogin final User user gebruiker setLastLogin new Date store
  • 在网页上,如何为特定部分设置滚动条?

    在获得的背面这个问题 https stackoverflow com questions 21159136 on a web page how can i create a horizontal scroll instead of havi
  • 如何使用 javascript 显示 PNG 图像的动画图像? [ 如 Gmail ]

    First of all check out this image Gmail uses this image to display the animated emoticon How can we show such animation
  • 启动应用程序的第二个实例的小部件

    当我点击小部件时 我在从小部件启动应用程序时遇到问题 这是一些代码的剪辑 Create an Intent to launch activity Intent intent new Intent context Entry MainTabV
  • 如何在Python中使用正则表达式排除特定字符串?

    我想匹配如下字符串 45 meters 45 meters 45 45 但不是像这样的字符串 45 meters you 45 you 45 and you 在这两种情况下 问号都必须位于末尾 所以 本质上我想排除所有包含 you 这个词的
  • 如何在构造函数中初始化 Objective-C 结构体?

    我在 Objective C 上使用一个结构来存储一些数据 如下所示 interface Interface NSObject my Data struct Data unsafe unretained BOOL isInit unsafe
  • 真正的 CTE 递归?

    我今天下午刚刚发现了 CTE 在享受了 2 个小时之后 我意识到它们并没有像我们在任何其他语言中学到的那样执行常见的递归 我的意思是 我总是将递归视为树搜索 所以我原以为 CTE 会一路下降到它发现的第一片叶子 但没有 他的工作是分层进行的
  • Power Query 列名称作为参数

    亲爱的巫师们 我正在尝试创建一个可以使用输入的搜索功能 1 搜索表 2 该表中将运行搜索的列 3 在2指定的列中搜索的值 该函数如下所示 mTbl as table mColName as text mColValue as text gt
  • 如何在 RDBMS 中表示预定事件?

    我必须存储可以每周 每天或每月组织的预定活动 例如上课时间 例如 事件可以在每周一和周三或每月的第二个周四发生 有没有办法将这些信息存储在遵循 3NF 的 RDBMS 中 编辑 这不是家庭作业 我正在和一个朋友一起构建一些东西来启发我们自己