我想在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)