iT邦幫忙

2024 iThome 鐵人賽

DAY 13
0
Odoo

30天就算 0 基礎,也能使用 GenAI 創造簡單的 Odoo 模組應用系列 第 13

【Day13】零基礎開始 ERP 關聯式資料庫 (Relational Database):從創建表格結構開始 (DDL)

  • 分享至 

  • xImage
  •  

只要能回答關聯式資料庫是什麼,怎麼創造,怎麼操作,就完工了 : ) 再來了解 Odoo ORM API 寫起來的樣子,你會覺得似曾相識

ERP 系統中的關聯式資料庫 (Relational Database) 是每個企業應用的核心,這篇文章將幫助你在完全零基礎下,理解關聯式資料庫的基本概念、如何創建它,以及如何操作它。我們會用 Excel 做比喻,來簡單化這些抽象的概念。


文章架構

  • 關聯式資料庫是什麼?
    • 用 Excel 舉例:表格與關聯
    • 關聯式資料庫中的關聯,核心概念
  • 如何在關聯式資料庫建立表格?DDL 定義表格的結構
    • DDL 定義數據庫和表格的結構
    • 關聯關係的建立
  • 將 DDL 的常用功能分類:以上面例子為例
    1. 資料庫物件 (Database Objects)
    2. 欄位 (Columns):欄位名稱、欄位資料型別
    3. 約束 (Constraints)
    4. 關聯 (Relationships)

關聯式資料庫是什麼?

關聯式資料庫是一種能夠存儲並組織大量資料的系統,使用表格 (tables) 來呈現數據。每張表格就像 Excel 裡的一張 sheet,表格內部有行和列,列代表不同的屬性 (attributes),例如客戶名稱、地址、電話號碼;而行代表每一筆具體的數據,也就是具體的客戶信息。

用 Excel 舉例:表格與關聯

  • 表格:想像一下你有一個 Excel 檔案,其中有兩個 sheet:一個存儲客戶信息,另一個存儲訂單資料。每個 sheet 都是一個表格 (table),每個表格有不同的資料結構。
  • 關聯:假設在客戶表格裡每個客戶都有唯一的 ID,而在訂單表格裡,每個訂單也都有客戶 ID,這兩個表之間的關係(關聯)可以通過客戶 ID 來建立。這樣,你就可以通過訂單表格中的客戶 ID 查詢到對應的客戶資料,這就是所謂的關聯。

關聯式資料庫中的關聯,核心概念

  • Primary Key (主鍵):主鍵是表格裡唯一標識每一行數據的欄位。例如,在客戶表格裡,每個客戶的 ID 都是唯一的,它就是這張表的主鍵。

  • Foreign Key (外鍵):外鍵是用來連接不同表格的欄位。例如,在訂單表格裡的客戶 ID,它連接的是客戶表格中的主鍵,這樣可以把不同的表格連接在一起。


如何在關聯式資料庫建立表格?DDL 定義表格的結構

在真正的關聯式資料庫管理系統 (RDBMS) 裡,我們會使用 SQL (Structured Query Language) 來創建和操作表格。首先,我們需要使用資料定義語言 (DDL, Data Definition Language) 來定義表格的結構。

DDL (資料定義語言),DDL 定義數據庫和表格的結構

常用的指令包括 CREATE, ALTER, DROP。例如,創建一個客戶表格的 SQL 語句如下:

CREATE TABLE Customers (
  CustomerID INT PRIMARY KEY,
  Name VARCHAR(255),
  Address VARCHAR(255),
  Phone VARCHAR(15)
);

關聯關係的建立

如果我們想在訂單表中建立與客戶表的關聯,可以用外鍵 (Foreign Key),如下例所示:

CREATE TABLE Orders (
  OrderID INT PRIMARY KEY,
  OrderDate DATE,
  CustomerID INT,
  FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);

將 DDL 的常用功能分類:以上面例子為例

1. 資料庫物件 (Database Objects)

  • TABLE:資料表 (Table),是儲存資料的結構。使用 CREATE TABLE 來建立表格。
    • 例如:CREATE TABLE Orders 定義一個名為 Orders 的表格。

2. 欄位 (Columns):欄位名稱、欄位資料型別

  • 欄位名稱 (Column Names):每個表中的資料欄位,用於存放具體的資料。
    • 例如:OrderID, OrderDate, CustomerID 是 Orders 表的欄位名稱。
  • 欄位資料型別 (Data Types):定義欄位中資料的類型。例如:
    • INT:整數類型,例如 OrderID, CustomerID。
    • DATE:日期類型,例如 OrderDate。

3. 約束 (Constraints)

  • 主鍵 (Primary Key):一個或多個欄位的唯一標識符,確保每條記錄的唯一性,並且不能為空。用 PRIMARY KEY 定義。
    • 例如:OrderID INT PRIMARY KEY 表示 OrderID 欄位是主鍵。
  • 外鍵 (Foreign Key):建立兩個表之間的關聯。使用 FOREIGN KEY 定義外鍵,並透過 REFERENCES 關聯到其他表中的主鍵。
    • 例如:FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID) 表示 Orders 表中的 CustomerID 欄位是 Customers 表中 CustomerID 的外鍵。

4. 關聯 (Relationships)

  • FOREIGN KEY 和 REFERENCES 用於建立兩張表之間的關聯,這使得在資料庫中能夠依賴彼此的資料。
    • 例如:FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID) 建立了 Orders 和 Customers 表之間的關聯,根據 CustomerID 進行連結。

上一篇
【Day12】自動化驗證 ERP 邏輯:單元測試 (Unittest)
下一篇
【Day14】運用 Odoo ORM 在資料庫建立,簡易電商顧客訂單模型
系列文
30天就算 0 基礎,也能使用 GenAI 創造簡單的 Odoo 模組應用21
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言