如果我向数据库表添加布尔列,是否违反任何规范化规则?

问题描述 投票:0回答:1

我的数据库中有两个表

  1. 服务器
身份证 服务器类型
服务器 ID1 1
服务器Id2 2
服务器Id3 3
服务器Id4 4
服务器Id5 5
服务器Id6 1
服务器Id7 2
服务器Id8 3
服务器Id9 4
服务器Id10 5
服务器Id11 1
服务器Id12 2
服务器Id13 3
  1. 服务器类型
身份证 服务器类型
1 开发商
2 基本
3 标准
4 高级
5 高级版

[dbo].[Servers].[ServerTypeId] 是列 [dbo].[ServerTypes].[Id] 的外键

我需要为服务器类型设置优先级服务器。

向表服务器添加了 IsPriority 列

ALTER TABLE [dbo].[Servers]
ADD IsPriority BIT NOT NULL DEFAULT 0;

在 Servers 表中添加 IsPriority 列可以解决这个问题。 它是否违反任何规范化规则。 我应该创建一个新表 PriorityServers 并添加与 Server 和 ServerType 表的关系

还有一个好处:服务器类型应该只有一个优先级服务器。

sql sql-server normalization database-normalization
1个回答
0
投票

如果

IsPriority
是服务器属性,那么添加它不会违反规范化规则,因为它是原子的并且不存在传递函数依赖性,即源不是主键的 FD。

© www.soinside.com 2019 - 2024. All rights reserved.