Это может быть простой/конкретный вопрос, но мне действительно нужна помощь в этом. У меня две таблицы: Entry
и Comment
в базе данных SQL Server. Я хочу показать кол-во комментариев в таблица входа. И, конечно, количество комментариев будет увеличиваться при добавлении комментария. Две таблицы связаны следующим образом: Comment.EntryId = Entry.Id
Комментарий к таблице ввода (SQL Query)
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#). Вопрос в том, что я должен написать как запрос, чтобы сделать это наиболее эффективно? Спасибо за помощь.
Действительно ли необходимо хранить комментарии? Почему бы не написать View, который его вычисляет? – okrumnow
Если кажется, что CommentCount должен быть вычисленным столбцом в Entry, если вы действительно хотите, чтобы он был столбцом в базе данных вообще. –
Я бы сказал, что вам нужно отбросить эти столбцы из этой таблицы 'SupportCount' и' CommentCount', поскольку они нарушают 3-ей нормальную форму, т. Е. Столбец в таблице должен зависеть только от первичного ключа. a 'View' должен выполнить задание –