I'm new to programming and databases and working on my first application using .Net, Entity (for SQL Server) and Identity.
My application will allow users to create html pages for online courses. Think of it like a course content management system. Instead of users (instructors) having to know HTML markup to create pages for their online courses they will use form fields to create html elements paragraphs<p>
, headers<h1>
etc. Then they can preview and export these pages for use in their online courses on another system.
A user in the application must have an overall role which will have permissions to do admin things like add users, create courses etc. Users need to be assigned to Courses to access them and can have different roles across Courses. E.g. Person A can be an "Instructor" in Course A, and "Observer" in Course B.
So there are 2 sets of roles and permissions - One at the organization level to do admin tasks and one at the Course level to create and manage content.
Since course development is a collaborative effort with multiple people working on a course, there will be a commenting system next to html elements that users have created.
Schema Design
Am I on the right track? Does it look normalized and are the relationships correct?