这可能是一个简单/特定的问题,但我真的需要帮助。我在SQL Server数据库中有两个表:Entry
和Comment
。我想显示评论数在条目表。当评论被添加时,评论计数当然会增加。两个表被连接这样的: Comment.EntryId = Entry.Id
评论Count on Entry Table(SQL查询)
Entry
表:
CREATE TABLE [dbo].[Entry] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Subject] NVARCHAR (MAX) NOT NULL,
[Content] NVARCHAR (MAX) NOT NULL,
[Type] NVARCHAR (50) NOT NULL,
[SenderId] NVARCHAR (50) NOT NULL,
[Date] DATE NOT NULL,
[Department] NVARCHAR (50) NULL,
[Faculty] NVARCHAR (50) NULL,
[ViewCount] INT DEFAULT ((0)) NOT NULL,
[SupportCount] INT DEFAULT ((0)) NOT NULL,
[CommentCount] INT DEFAULT ((0)) NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
Comment
表:
CREATE TABLE [dbo].[Comment] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[EntryId] INT NOT NULL,
[SenderId] NVARCHAR (50) NOT NULL,
[Date] DATETIME NOT NULL,
[Content] NVARCHAR (MAX) NOT NULL,
[SupportCount] INT NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
我显示在代码隐藏在一个gridview的条目(C#)。问题是这个,我应该写什么来作为查询来最有效地做到这一点?感谢帮助。
确实需要存储评论数量吗?为什么不写一个视图来计算它? – okrumnow
如果看起来像CommentCount应该是Entry上的一个计算列,如果你真的希望它成为DB中的一列。 –
我会说你需要从这个表中'SupportCount'和'CommentCount'删除这些列,因为它们违反了第三范式,即表中的一列只应该依赖于主键。一个'查看'应该做的工作 –