mysql - 试图避免多个父表

标签 mysql database-design

现有应用程序中出现了新要求。目前,我们有一个组织表,它有一个子表 CalendarEvents。现在,请求是允许 User 表、Organization 表或 Division 表拥有日历事件。我认为需要做出一些改变,因为现在,这会让我创建以下表结构:

  • 组织(organization_id)
  • 用户(user_id,organization_id)
  • 部门 (division_id),
  • 日历(calendar_id、organization_id、user_id、division_id),
  • 日历事件(calendar_event_id、calendar_id)

我试图避免将日历链接到多个家长。有没有更好的方法来做到这一点,我错过了? (一个组织/用户/部门可以有多个日历,但只有一个组织/用户/部门可以拥有一个日历)

感谢任何输入。

最佳答案

由于 User 实例和 Organization 实例可以有自己的事件,我倾向于制作单独的表:

Organization
OrganizationCalendarEvents (with FK to Organization)
User
UserCalendarEvents (with FK to User)

这样两个实体就可以控制自己的事件了。此外,如果保持结构相同,则可以在中间层使用单个基类,它可以从任一表加载。

关于mysql - 试图避免多个父表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5601552/

相关文章:

c# - Linq .Count() 来自另一个带有内连接的表 (C#)

php - 奇怪的MySQLi错误

Django - 可定制的用户配置文件

ruby-on-rails - 营业时间与员工时间关系的推荐数据库设计

c# ef - 在一个公用表与其他三个或更多表之间创建一对零/一映射的最佳方法

mysql - 使用 mysqldump 以不同方式将一个数据库复制并覆盖到另一个数据库

mysql - MySQL 中查询/查看表的大小限制是多少?

php - MySQL 查询 w/COUNT() 和 HAVING 基于日期比较

c# - 在 Entity Framework 和 Sql Server 中创建对象计数器

javascript - NodeJS|SailsJS|吃水线 : Automatic Model Generation in One-To-Many--To--Many-To-Many Relationships