iT邦幫忙

2024 iThome 鐵人賽

DAY 7
0

1. 資料表規劃概述

資料表規劃是設計資料庫模型的第一步。它涉及確定應用程序所需的資料表、每個表的欄位以及這些表之間的關聯。良好的資料表設計能夠保證數據的一致性、完整性和高效性。

2. 需求分析

在開始設計資料表之前,首先要了解應用程序的需求。進行需求分析時,需要回答以下問題:

應用程序需要哪些主要實體?
每個實體需要哪些屬性?
實體之間有何種關聯?

3. 資料表設計

在建立資料庫模型之前,我們先來規劃需要用到哪些資料表:

  • User // 會員資料表

    • id
    • name
    • password
  • Manufacturer // 賣家資料表

    • id
    • name
    • password
  • Product // 商品資料表

    • id
    • name
    • imager
    • remarks
    • number
    • manufacturer_id
    • product_class_id
  • ProductClass // 商品分類

    • id
    • class_name
  • Shop // 購物車

    • id
    • CreatedAt
    • user_id
    • manufacturer_id
    • product_id
    • number
  • Order // 訂單

    • id
    • CreatedAt
    • order_number
    • adress
    • phone
    • price
    • user_id
    • manufacturer_id
    • payment
  • Item // 訂單下的項目

    • id
    • order_id
    • product_id
    • product_name
    • price
    • user_id
    • manufacturer_id

4.使用QuickDBD來做資料表規劃

QuickDBD(Quick Database Diagram)是一個網頁應用程式,用於快速創建和設計關聯式數據庫結構的圖表。以下是 QuickDBD 的一些主要特點和功能介紹:

主要特點

簡單易用: 使用簡單的文本語法來定義數據表及其欄位,QuickDBD 會即時生成數據庫結構圖。

即時預覽: 在輸入表結構時,可以即時查看數據庫設計圖的變化,方便快速調整和校對。

支持外鍵: 能夠清晰地顯示表之間的外鍵關係,幫助理解數據表的關聯性。

自動排版: 生成的數據庫結構圖會自動進行排版,使得圖表更具可讀性。

支持多種格式導出: 可以將設計好的數據庫圖表導出為 PDF、PNG、SVG 等格式,以便分享和保存。

進行規劃

上面介紹完QuickDBD的基本資料,現在來正式使用QuickDBD
基本上把上面規劃好的資料表按照QuickDBD的語言格式打上去,整個資料表的關聯就一清二楚了!
https://app.quickdatabasediagrams.com/#/d/K2WxO0

"User"
-
id PK int
name string
password string

"Manufacturer"
-
id PK int
name string
password string

"Product"
-
id PK int
name string
imager string
remarks string
number int
manufacturer_id int FK >- "Manufacturer".id
product_class_id int FK >- "ProductClass".id

"ProductClass"
-
id PK int
class_name string

"Shop"
-
id PK int
CreatedAt datetime
user_id int FK >- "User".id
manufacturer_id int FK >- "Manufacturer".id
product_id int FK >- "Product".id
number int

"Order"
-
id PK int
CreatedAt datetime
order_number string
adress string
phone string
price decimal
user_id int FK >- "User".id
manufacturer_id int FK >- "Manufacturer".id
payment string

"Item"
-
id PK int
order_id int FK >- "Order".id
product_id int FK >- "Product".id
product_name string
price decimal
user_id int FK >- "User".id
manufacturer_id int FK >- "Manufacturer".id

做這個最主要的用意是讓資料表規劃更方便,有跟人合作的話也方便你展示給別人看

5. 關聯設計

在資料表之間建立正確的關聯是確保數據完整性的關鍵:

一對多: 例如,一個 User 可以有多個 Order。這種關聯可以通過外鍵來實現。
多對多: 例如,一個 Order 可以包含多個 Product,而一個 Product 也可以出現在多個 Order 中。這種關聯通常通過中介表(如 OrderItem)來處理。

6. 資料表規劃最佳實踐

正規化: 確保資料表設計符合正規化原則,以避免數據冗餘和更新異常。
索引: 根據查詢需求設計索引,以提高查詢效率。
安全性: 對敏感信息(如密碼)進行加密,保護用戶隱私。
性能: 定期分析和優化資料表,以提升系統性能。

好了以上就是這次專案會用到的資料表,接下來明天會來把這些表塞進資料庫裡面~


上一篇
Day-06 好用的資料庫管理軟體-Navicat
下一篇
Day-08 Entity Framework Core 資料庫安裝
系列文
從零開始教你做AspNet7.0購物網站30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言