點擊上方的語言選單以切換語言
以表格形式存資料,強調資料一致性 (ACID)。適合金融、訂單、ERP 系統。
| 資料庫 | 功能/特點 |
|---|---|
| MySQL | 開源、支援 SQL 查詢、適合中小型網站 |
| PostgreSQL | 支援複雜查詢、ACID、擴展性強 |
| Oracle Database | 企業級關聯式資料庫,強一致性、穩定可靠 |
| Microsoft SQL Server | 企業應用、整合微軟生態系統 |
資料分散在多台伺服器,支援高並發與水平擴展,部分資料庫採用最終一致性。
| 資料庫 | 功能/特點 |
|---|---|
| MongoDB | 文件型資料庫 (Document DB),適合存 JSON 結構資料 |
| Redis | 快取資料庫,支援即時訊息、排行榜、計數器 |
| Cassandra | 高可用、分散式,適合大數據與高流量應用 |
| DynamoDB | AWS 提供的 NoSQL,易水平擴展、免維護伺服器 |
| TiDB | 分散式關聯式資料庫,支援 SQL 與水平擴展 |
根據遊戲規模與營運需求,開發者會選擇單一或混合式的資料架構:
| 遊戲規模 | 資料存儲方案 | 應用細節 | 核心目的 |
|---|---|---|---|
| 純單機遊戲 | Local Storage / 存檔文件 | .json, .dat 或 SQLite 存於玩家本機。 | 零延遲、無需伺服器成本。 |
| 多人 / 雲端服務 | 混合架構 (SQL + NoSQL) | SQL: 帳號、課金、商城交易。 NoSQL: 好友清單、即時訊息。 |
確保交易安全並提升社交互動速度。 |
| 大型開放世界 (MMO) | 複合架構 (SQL + Redis + 快取) | SQL: 核心數據存檔。 Redis: 全球排行榜、玩家坐標快取。 |
在高並發下維持數據一致性與讀取效能。 |
正規化(Normalization)是整理資料結構的方法,目的是減少冗餘、避免更新異常。在本作中,我們將角色屬性視為「系統代碼」,演釋如何透過正規化管理這些異常樣本。
將生理屬性與多項能力塞入同一表,導致欄位違反原子性。例如沙德同時擁有「隔空取物」與「操控夜行性動物」,多個值依賴於單一欄位。
-- 冗餘嚴重,且無法精準篩選特定能力的個體
CREATE TABLE Entity_Raw (
Name VARCHAR(20), -- 沙德, 札菲爾, Nephilim-01
Species VARCHAR(20), -- 吸血鬼, 墮天使, 混血巨人
Abilities TEXT, -- "隔空取物, 操控夜行性動物" (違反原子性)
Constraints TEXT, -- "紫外線脆弱, 核心代碼鎖死"
Height_cm INT, -- 183, 210, 210
CanFly BOOLEAN
);
確保每個欄位不可再分。將 Nephilim 的多項戰鬥規格拆分為獨立紀錄。
CREATE TABLE Entity_1NF (
EntityID INT,
EntityName VARCHAR(20),
AbilityName VARCHAR(50), -- 彈跳力, 紫外線脈衝, 十噸怪力
PRIMARY KEY (EntityID, AbilityName)
);
確保非主鍵欄位完全依賴於主鍵。將角色的「基礎資料」與「戰鬥能力」拆分,避免重複記錄身高資訊。
-- 實體主表 (基礎物理標尺:堅定採用公制整數以對接標準物理公式,免除轉換阻抗)
-- 參考《暮光之城》沃爾圖里與《惡魔城》德古拉之大眾審美標尺進行數據渲染
CREATE TABLE Entities_2NF (
EntityID INT PRIMARY KEY,
EntityName VARCHAR(20), -- 沙德, 札菲爾, 耶和華, 加百列
Height_cm INT, -- 沙德 183 / 札菲爾 210 / 耶和華 226 / 加百列 220
Weight_tons DECIMAL(4,2), -- 物理出力噸級 (沙德 1.50 / 加百列 15.00)
Core_Temperature_C INT -- 平均體溫 (沙德冷循環 18 / 天使熱能 36)
);
非主鍵欄位不可依賴於其他非主鍵欄位。在本作設定中,生理特徵(排泄免除、汗腺覺醒、生物熱能、繁殖力鎖死)是由「物種類型」決定的,而非特定個體。若將其塞在同一張表,會造成严重的傳遞依賴(CharacterID -> SpeciesType -> BioFeatures)。
-- 1. 物種系統定義表 (定義不同代碼類型的底層限制,徹底解構偽神繁衍控制與愚民政策)
CREATE TABLE SpeciesCodeProtocol (
SpeciesType VARCHAR(20) PRIMARY KEY,
CanSweat BOOLEAN, -- 札菲爾(墮天使)感官覺醒,開啟汗腺與生物熱能代碼
CanExcrete BOOLEAN, -- 沙德(吸血鬼)高效代謝血液燃料,完全免除潔牙與排泄生理需求
HasFertility BOOLEAN -- 繁衍禁令:吸血鬼與Nephilim生殖系統被永久鎖死,精卵喪失生物活性
);
-- 2. 角色權限主表 (建立個體與物種協議的映射,消除傳遞依賴)
CREATE TABLE Characters_3NF (
CharacterID INT PRIMARY KEY,
CharacterName VARCHAR(20), -- 沙德, 札菲爾, 該隱, 莉莉絲, 加百列
SpeciesType VARCHAR(20),
FOREIGN KEY (SpeciesType) REFERENCES SpeciesCodeProtocol(SpeciesType)
);
當一個資料表內存在複數個「獨立的多值依賴」時,會引發嚴重的資料組合爆炸。以札菲爾 (Zaphir) 為例,他所掌握的「非法反叛技術」與耶和華系統針對他所下載的「系統漏洞弱點」,兩者互不相關,但在 3NF 混合表內會產生毀滅性的冗餘(組合爆炸)。必須實作 4NF 將其徹底拆分:
-- 1. 非法技術多值表 (個體獨立對應的多項非法反叛技術)
CREATE TABLE CharacterIllegalTech_4NF (
CharacterID INT,
TechName VARCHAR(50), -- 符號重組, 氣象干擾, 意志催眠, 隔空取物
PRIMARY KEY (CharacterID, TechName),
FOREIGN KEY (CharacterID) REFERENCES Characters_3NF(CharacterID)
);
-- 2. 系統弱點多值表 (耶和華系統針對該個體鎖定的物理/宗教後門脆弱頻率)
CREATE TABLE CharacterVulnerabilities_4NF (
CharacterID INT,
WeaknessName VARCHAR(50), -- 強紫外線過敏, 純銀核心震盪, 宗教符號抑制
PRIMARY KEY (CharacterID, WeaknessName),
FOREIGN KEY (CharacterID) REFERENCES Characters_3NF(CharacterID)
);
處理無法簡單拆分為二元關係的三方循環依賴(3-way Join Dependency)。在耶和華系統的動態追捕演算法中:特定的 [執法官官員],在特定的 [通緝星級] 下,獲准調度特定的 [環境格式化超頻主權]。這三個實體環環相扣,只有實作 5NF 才能在拆分儲存的同時,精確還原 5 星通緝大天使加百列降臨人間時的執法邏輯,避免產生不合邏輯的「虛假關聯」:
-- 1. 執法官與星級關聯表 (限制哪些大天使可以介入哪些通緝等級)
CREATE TABLE Officer_Wanted_Deployment (
OfficerID INT, -- 大天使加百列, 混血巨人Nephilim
WantedLevel INT, -- 4星通緝, 5星通緝
PRIMARY KEY (OfficerID, WantedLevel)
);
-- 2. 星級與授權主權表 (定義不同通緝等級可以超頻調度的環境指令集)
CREATE TABLE Wanted_Authority_Manifest (
WantedLevel INT,
OverwriteAuthority VARCHAR(50), -- UV_Burst(紫外線爆發), Hydraulic_Domain(高壓水主權), Sky_Command(天氣超頻)
PRIMARY KEY (WantedLevel, OverwriteAuthority)
);
-- 3. 執法官與技能配給表 (定義大天使個體核心硬體所能承載的超頻極限)
CREATE TABLE Officer_Core_Capability (
OfficerID INT,
OverwriteAuthority VARCHAR(50),
PRIMARY KEY (OfficerID, OverwriteAuthority)
);
-- 💡 5NF 終極執法宣告:只有當三張表同時滿足連接依賴時,系統才會生成大天使加百列在 5 星等級下召喚「導電鏈天譴雷擊」的格式化行為。
在實際開發中,我們通常遵循 3NF / 4NF。但在處理高頻率讀取的即時數值時,會適度採用反正規化 (Denormalization),以空間換取時間,確保遊戲運行流暢。