database - 我应该合并这些数据库表吗?

标签 database database-design

我有一个事件日历应用程序,它背后有一个 sql 数据库,现在我有 3 个表来表示事件:

表 1:假期
列:ID、日期、姓名、位置、CalendarID

表 2:假期
列:Id、Date、Name、PersonId、WorkflowStatus

表 3:事件
列:Id、Date、Name、CalendarID

所以我有进入事件表的“一般事件”和进入这些单独表的特殊事件,如假期和假期。我正在讨论将这些合并到一个表中,并且只为一般事件保留位置和个人身份等列的空白。

表 1:事件:
列:Id、Date、Name、Location、PersonId、WorkflowStatus

有没有人看到每个选项有任何强烈的正面或负面影响。显然会有一些记录的列不一定适用,但它与这三个表有重叠。

最佳答案

无论以何种方式构造它,应用程序都必须处理变体类型。在这种情况下,我建议您在 DBM 中使用单一表示,因为替代方法是需要多个查询。

因此,这就变成了将复杂性置于何处的问题,即使在一个庞大的组织中,也很难生成足够多的事件来担心 DBMS 优化。应用程序代码比硬连线模式更灵活。这是一个偏好问题。

关于database - 我应该合并这些数据库表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3614386/

相关文章:

php - 用户 '' @'10.246.64.24' 的访问被拒绝(使用密码 : NO)

mysql - 我应该引用字段 ID 还是将实际数据放在同一行中?

mysql - 数据库编码 utf-8 或 utf-16

mysql - 是否应该为数据库表中没有唯一键的每一行生成一个唯一 ID?

php - 通过 PHP 选择表单从数据库中删除条目 - 不删除条目

python - PostgreSQL - 查询所有表的所有表列

ruby-on-rails - 如何使这个事件记录关联

database-design - 我应该为同一平台内的不同 Web 产品创建单独的用户表吗?

android - 使用 sqlite 数据库和内容提供程序在应用程序中进行登录设计

java - Mysql数据截断: Data truncation: Out of range value for column 'column' at row 1