CREATE TABLE `Posts` ( `Id` int, `Title` varchar(255), `Body` varchar(255), `PublishedOn` datetime, `AllowAnonymousToComment` varchar(255), `ApprovedCommentsCount` int, `UnApprovedCommentsCount` int, `ModifiedOn` datetime, `Author_Id` int, `UserAgent` varchar(255), `IsDraft` bool, `IsApproved` bool, `...` varchar(255), FOREIGN KEY(`Author_Id`) REFERENCES `Users` (`Id`) ); CREATE TABLE `Comments` ( `Id` int PRIMARY KEY, `Body` varchar(255), `CreatorName` varchar(255), `Parent_Id` int, `userAgent` varchar(255), `CreateOn` datetime, `User_Id` int, `SiteUrl` varchar(255), `Email` varchar(255), `Post_Id` int, `Status` int, `ModifiedOn` datetime, `...` varchar(255), FOREIGN KEY(`Parent_Id`) REFERENCES `Comments` (`Id`), FOREIGN KEY(`User_Id`) REFERENCES `Users` (`Id`), FOREIGN KEY(`Post_Id`) REFERENCES `Posts` (`Id`) ); CREATE TABLE `Attachments` ( `Id` int PRIMARY KEY, `FileName` varchar(255), `AttachedOn` datetime, `Size` int, `Extension` varchar(255), `ContentType` varchar(255), `Attacher_Id` int, `UserAgent` varchar(255), `DownloadsCount` int, FOREIGN KEY(`Attacher_Id`) REFERENCES `Users` (`Id`) ); CREATE TABLE `Users` ( `Id` int PRIMARY KEY, `UserName` varchar(255), `HashPasswod` varchar(255), `DisplayName` varchar(255), `Email` varchar(255), `...` varchar(255) ); CREATE TABLE `Roles` ( `Id` int PRIMARY KEY, `Name` varchar(255), `Description` varchar(255) ); CREATE TABLE `Tags` ( `Id` int, `Name` varchar(255) ); CREATE TABLE `Permissions` ( `Id` int PRIMARY KEY, `Name` varchar(255) ); CREATE TABLE `UserRole` ( `User_Id` int, `Role_Id` int, FOREIGN KEY(`User_Id`) REFERENCES `Users` (`Id`), FOREIGN KEY(`Role_Id`) REFERENCES `Roles` (`Id`) ); CREATE TABLE `PermissionRole` ( `Role_Id` int, `Permission_Id` int, FOREIGN KEY(`Role_Id`) REFERENCES `Roles` (`Id`), FOREIGN KEY(`Permission_Id`) REFERENCES `Permissions` (`Id`) ); CREATE TABLE `PostTag` ( `Tag_Id` int, `Post_Id` int, FOREIGN KEY(`Tag_Id`) REFERENCES `Tags` (`Id`), FOREIGN KEY(`Post_Id`) REFERENCES `Posts` (`Id`) );