ITPub博客

首页 > 数据库 > Oracle > 数据库表规范化问题

数据库表规范化问题

Oracle 作者:nana1123 时间:2022-04-25 16:19:33 0 删除 编辑

我正在制作一个在线日历。

一个人将能够创建en事件,然后可以选择添加“无限”或“从”到“结束”日期时间。如果您选择添加“从”到“结束”,您可以选择每周或每个月的每天都没有重复或重复。

我想知道创造这些关系的最佳方式是什么。

这是我现在有我的桌子:

Table: EventsColumns: name, description, date_time (foreign key)Table: Date_timeColumns: from, to, repeat (foreign key)Table: RepeatColumns: mode, days1: "daily", "every 2nd day"2: "weekly", "Monday, Wednesday"3: "monthly", "1st, 12th, 19th"

有了这个,我遇到了一些问题。

在这里,我必须指定events.date_time,因为它具有外键约束。如何让用户选择未指定任何DateTime,只需将其设置为无限“。

重复也是如此。如果用户设置了DateTime,我希望能够设置重复到无的可能性。

有人可以指向正确的方向。

谢谢

看答案

我建议重新考虑模式,我的提案是这样的:

编辑: 由于事件可能没有超过一个时期,因此使用更好  从 和  到 作为列,如果它们为null,则事件无限有效。

Table: EventsColumns: id, name, description, from (nullable), to (nullable)Table: RepeatColumns: mode, days, event_id (foreign key to Event)1: "daily", "every 2nd day"


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70017124/viewspace-2888679/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2022-04-25

  • 博文量
    12
  • 访问量
    8568