相关疑难解决方法(0)

我应该使用内联varchar(max)列还是将其存储在单独的表中?

我想在MS SQL Server 2005中创建一个表来记录某些系统操作的详细信息.从下面的表格设计中可以看出,除了之外的每一列Details都是不可为空的.

CREATE TABLE [Log]
(
[LogID] [int] IDENTITY(1,1) NOT NULL,
[ActionID] [int] NOT NULL,
[SystemID] [int] NOT NULL,
[UserID] [int] NOT NULL,
[LoggedOn] [datetime] NOT NULL,
[Details] [varchar](max) NULL
)
Run Code Online (Sandbox Code Playgroud)

因为Details列中不会始终包含数据.将此列存储在单独的表中并提供指向它的链接是否更有效?

CREATE TABLE [Log]
(
[LogID] [int] IDENTITY(1,1) NOT NULL,
[ActionID] [int] NOT NULL,
[SystemID] [int] NOT NULL,
[UserID] [int] NOT NULL,
[LoggedOn] [datetime] NOT NULL,
[DetailID] [int] NULL
)       

CREATE TABLE [Detail]
(
[DetailID] [int] IDENTITY(1,1) NOT NULL,
[Details] [varchar](max) NOT NULL …
Run Code Online (Sandbox Code Playgroud)

sql-server varchar normalization

16
推荐指数
2
解决办法
6822
查看次数

标签 统计

normalization ×1

sql-server ×1

varchar ×1