dar*_*050 5 database-design sql-server sql-server-2008-r2
我正在使用 SQL Server 2008 R2 进行数据库设计,基本上它是一个简单的论坛数据库设计(就像游戏迷论坛一样)。幸运的是,我正在努力解决它,因为我没有找到任何免费样品来将我的工作与它进行比较。
正如一些人在评论中要求的那样,这就是我目前所做的:对于一个论坛,我考虑了一个用户(表),每个用户都有一个帖子(表),每个帖子都可以启动一个主题(表)。
表用户:用户 ID (PK)、昵称、电子邮件、密码、头像。
表格帖子:PostID (PK)、UserID (FK)、DateTime、Description。
我没有答案的问题:-
你可能有这样的事情。如果帖子是新主题,则 ParentID 和 ReplyToID 将为 NULL。对于论坛来说,通常需要显示一个帖子何时是对另一个帖子的回复,但仍指明它属于哪个主题,因此第二列 (ReplyToID) 可以指明这一点。当它是对原始父级的回复时,它可以为 NULL 或与 ParentID 具有相同的值。
CREATE TABLE dbo.Posts
(
PostID INT IDENTITY(1,1) PRIMARY KEY,
UserID INT NOT NULL FOREIGN KEY REFERENCES dbo.Users(UserID),
ParentID INT NULL REFERENCES dbo.Posts(PostID),
ReplyToID INT NULL REFERENCES dbo.Posts(PostID),
Content NVARCHAR(MAX), -- more accurate than "description"
-- ... other columns ...
-- "DateTime" is not a good choice for a column name
create_date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
modify_date DATETIME NULL -- or same default as create_date
);
Run Code Online (Sandbox Code Playgroud)