Sql-Server

我的第一個數據庫架構設計

  • June 25, 2018

我是程式和數據庫的新手,並且正在使用 .Net、Entity(用於 SQL Server)和 Identity 開發我的第一個應用程序。

我的應用程序將允許使用者為線上課程創建 html 頁面。把它想像成一個課程內容管理系統。使用者(教師)不必知道 HTML 標記來為他們的線上課程創建頁面,他們將使用表單欄位來創建 html 元素段落<p>、標題<h1>等。然後他們可以預覽和導出這些頁面以在另一個系統上的線上課程中使用。

應用程序中的使用者必須具有總體角色,該角色將有權執行管理操作,例如添加使用者、創建課程等。使用者需要分配給課程才能訪問它們,並且可以在課程中具有不同的角色。例如,人 A 可以是課程 A 中的“講師”,以及課程 B 中的“觀察者”。

因此有兩組角色和權限——一組在組織級別執行管理任務,一組在課程級別創建和管理內容。

由於課程開發是多人合作完成的課程,因此在使用者創建的 html 元素旁邊會有一個評論系統。

架構設計

架構設計截圖

我在正確的軌道上嗎?它看起來是否正常化並且關係是否正確?

我認為你是正確的軌道之一。使您的數據庫模型化過程。嘗試將人員、安全形色和課程視為具有關係的獨立實體——並不總是直接的。

在您的場景中,您正在描述角色、課程和人員之間的多對多關係。

在一張表中,您有人員 - 所有人口統計數據,例如姓名、地址和電話號碼。第二個表具有一個人在系統中可能具有的不同角色 - 講師、學生、審計員、助教等。第三個表包含課程 - 所有人口統計數據課程名稱、部門、成本等。最終表有安全權限 - 通過網頁、功能或在您的應用程序上下文中有意義的任何內容。

在這兩者之間,您將擁有將這些關係分解為一對多關係的表。具有講師角色的人分配了多門課程,一個錶帶有特定講師的代理鍵和其課程負荷的代理鍵。

我想在建構架構之前建構這樣的東西 - https://en.wikipedia.org/wiki/Swim_lane 。當您了解誰在做什麼以及以什麼順序進行操作時,您就會更好地了解您的數據模型應該是什麼樣子。

引用自:https://dba.stackexchange.com/questions/186004