Designing a database schema using normalization techniques.
Using the non-normalized data in the BlogPost table below, create a database schema that will represent the same data in 3rd Normal Form.
| Slug | Title | Body | AuthorName | AuthorEmail | AuthorBio | Category1 | Category2 | Tags | Views |
|---|---|---|---|---|---|---|---|---|---|
| serilog-structured-logging | Structured Logging with Serilog | Long Text Here | Eric Fleming | ericfleming@nimblepros.com | Long Text Here | Software Development | Cloud Computing | logging,serilog,appinsights | 123 |
| persisting-smart-enum | Persisting a Smart Enum with EF Core | Long Text Here | Kyle McMaster | kylemcmaster@nimblepros.com | Long Text Here | Software Development | null | smartenum,efcore | 234 |
| localization-aspnet-core-apis | Localization in ASP.NET Core APIs | Long Text Here | Steve Smith | steve@nimblepros.com | Long Text Here | Software Development | Web APIs | localization,aspnetcore,web-api | 345 |
Table Generated with TableGenerator.com
Fork this repository and add your tables here:
(your tables go here - you can use TableGenerator to create them. Include the data from the sample above in your tables)
| Id | Slug | Title | Body | Views |
|---|---|---|---|---|
| 1 | serilog-structured-logging | Structured Logging with Serilog | Long Text Here | 123 |
| 2 | persisting-smart-enum | Persisting a Smart Enum with EF Core | Long Text Here | 234 |
| 3 | localization-aspnet-core-apis | Localization in ASP.NET Core APIs | Long Text Here | 345 |
| Id | AuthorName | AuthorEmail | AuthorBio | Blog_Id |
|---|---|---|---|---|
| 1 | Eric Fleming | ericfleming@nimblepros.com | Long Text Here | 1 |
| 2 | Kyle McMaster | kylemcmaster@nimblepros.com | Long Text Here | 2 |
| 3 | Steve Smith | steve@nimblepros.com | Long Text Here | 3 |
| Id | Category | Blog_Id |
|---|---|---|
| 1 | Software Development | 1 |
| 2 | Software Development | 2 |
| 3 | Cloud Computing | 1 |
| 4 | Web APIs | 3 |
| Id | Name |
|---|---|
| 1 | logging |
| 2 | serilog |
| 3 | appinsights |
| 4 | smartenum |
| 5 | efcore |
| 6 | localization |
| 7 | aspnetcore |
| 8 | web-api |
| Id | Blog_Id | Tag_Id |
|---|---|---|
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 1 | 3 |
| 4 | 2 | 4 |
| 5 | 2 | 5 |
| 6 | 3 | 6 |
| 7 | 3 | 7 |
| 8 | 3 | 8 |
Once you've completed the initial exercise, modify your design to support these additional features:
- Blog posts can have one or many authors.
- Users would like to see a report showing views per blog post per day.
- Blog posts can have Comments. Each Comment should include a Title, Commenter Name, and Body.