คู่มือเริ่มต้นสำหรับการเขียนแผนผังฐานข้อมูล mySQL

คู่มือเริ่มต้นสำหรับการเขียนแผนผังฐานข้อมูล mySQL

เมื่อพัฒนาโครงการซอฟต์แวร์ สิ่งสำคัญที่สุดประการหนึ่ง ด้านพื้นฐานและภายในคือ สคีมาฐานข้อมูลที่มีโครงสร้างอย่างเหมาะสม เทียบเท่ากับการสร้างบ้านที่คุณต้องวางรากฐานอย่างเหมาะสม ไม่เช่นนั้นโอกาสในการสร้างบ้านที่มีคุณภาพจะลดลงอย่างมาก





ง่ายกว่าที่คิด มาเรียนรู้แง่มุมต่างๆ ที่ใช้ในการเขียนสคีมาฐานข้อมูลที่ออกแบบอย่างดี





โปรแกรมใดควรรันเมื่อเริ่มต้น windows 7

สร้างตารางไวยากรณ์

ในการเริ่มต้น ให้เปิดโปรแกรมแก้ไขข้อความที่คุณชื่นชอบ การสร้างสคีมาฐานข้อมูลไม่ต้องการอะไรมากไปกว่าไฟล์ข้อความธรรมดา ฐานข้อมูลประกอบด้วยตารางหลายตาราง แต่ละตารางประกอบด้วยคอลัมน์ และใช้ไวยากรณ์ CREATE TABLE เพื่อสร้างตารางเดียว นี่คือตัวอย่างพื้นฐาน:






CREATE TABLE users (
id INT NOT NULL,
is_active TINY INT NOT NULL,
full_name VAR CHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL
);

อย่างที่คุณเห็นสิ่งนี้จะสร้างตารางฐานข้อมูลชื่อ ผู้ใช้ ซึ่งประกอบด้วยสี่คอลัมน์ นี่ควรเป็นคำสั่ง SQL ที่ค่อนข้างตรงไปตรงมาที่ขึ้นต้นด้วย สร้างตาราง ตามด้วยชื่อของตารางฐานข้อมูล จากนั้นในวงเล็บจะมีคอลัมน์ของตารางคั่นด้วยเครื่องหมายจุลภาค

ใช้ประเภทคอลัมน์ที่ถูกต้อง

ดังที่แสดงไว้ด้านบน คอลัมน์ในตารางจะประกอบด้วยคั่นด้วยเครื่องหมายจุลภาค คำนิยามแต่ละคอลัมน์ประกอบด้วยสามส่วนเดียวกัน:



COL_NAME TYPE [OPTIONS]

ชื่อของคอลัมน์ ตามด้วยประเภทคอลัมน์ ตามด้วยพารามิเตอร์ทางเลือกใดๆ เราจะพูดถึงพารามิเตอร์ทางเลือกในภายหลัง แต่เน้นที่ประเภทคอลัมน์ ด้านล่างแสดงรายการประเภทคอลัมน์ที่ใช้บ่อยที่สุดที่มี:

สำหรับ Intents ทั้งหมด ประเภทคอลัมน์ข้างต้นเป็นสิ่งที่คุณต้องเขียนสกีมาฐานข้อมูล mySQL ที่สร้างขึ้นอย่างดี





กำหนดตัวเลือกคอลัมน์

เมื่อกำหนดคอลัมน์ คุณยังระบุตัวเลือกต่างๆ ได้อีกด้วย ข้างล่างนี้เป็นอีกตัวอย่างหนึ่งของ สร้างตาราง คำแถลง:


CREATE TABLE users (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100) NOT NULL UNIQUE,
status ENUM('active','inactive') NOT NULL DEFAULT 'active',
balance DECIMAL(8,2) NOT NULL DEFAULT 0,
date_of_birth DATETIME,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);

ข้างต้นอาจดูน่ากลัวเล็กน้อย แต่ไม่ต้องกังวล มันค่อนข้างง่าย นี่คือสิ่งที่เกิดขึ้นในข้อความข้างต้น:





  • คุณควรใช้ NOT NULL กับทุกคอลัมน์ที่เป็นไปได้เสมอ เพื่อช่วยในเรื่องความเร็วและประสิทธิภาพของตาราง นี่เพียงระบุคอลัมน์ที่ไม่สามารถเว้นว่าง / null เมื่อแทรกแถว
  • พยายามรักษาขนาดคอลัมน์ให้เล็กที่สุดเท่าที่เป็นไปได้เสมอ เนื่องจากจะช่วยปรับปรุงความเร็วและประสิทธิภาพ
  • NS NS คอลัมน์เป็นจำนวนเต็ม เป็นคีย์หลักของตารางด้วย ซึ่งหมายความว่าไม่ซ้ำกัน และจะเพิ่มขึ้นทีละรายการทุกครั้งที่แทรกระเบียน โดยทั่วไปควรใช้กับตารางทั้งหมดที่คุณสร้าง เพื่อให้คุณสามารถอ้างอิงแถวเดียวภายในตารางได้อย่างง่ายดาย
  • NS สถานะ คอลัมน์คือ ENUM และต้องมีค่า 'active' หรือ 'inactive' หากไม่มีการระบุค่า แถวใหม่จะเริ่มต้นด้วยสถานะ 'ใช้งานอยู่'
  • NS สมดุล คอลัมน์เริ่มต้นที่ 0 สำหรับทุกแถวใหม่ และเป็นจำนวนที่จัดรูปแบบจุดทศนิยมสองตำแหน่ง
  • NS วันเกิด คอลัมน์เป็นเพียงวันที่ แต่ยังอนุญาตให้มีค่าว่างเนื่องจากวันเดือนปีเกิดอาจไม่เป็นที่รู้จักเมื่อสร้าง
  • สุดท้าย สร้าง_at คอลัมน์คือ TIMESTAMP และค่าเริ่มต้นเป็นเวลาปัจจุบันเมื่อแทรกแถว

ข้างต้นเป็นตัวอย่างของตารางฐานข้อมูลที่มีโครงสร้างสวยงาม และควรใช้เป็นตัวอย่างในอนาคต

ข้อดีอย่างหนึ่งของการใช้ฐานข้อมูลเชิงสัมพันธ์เช่น mySQL คือการสนับสนุนที่ยอดเยี่ยมสำหรับข้อจำกัดของคีย์ต่างประเทศและการเรียงซ้อน นี่คือเมื่อคุณเชื่อมโยงตารางสองตารางเข้าด้วยกันโดยคอลัมน์ ทำให้เกิดความสัมพันธ์ระดับบนสุด ดังนั้นเมื่อแถวหลักถูกลบ แถวย่อยที่จำเป็นจะถูกลบโดยอัตโนมัติด้วย

นี่คือตัวอย่าง:


CREATE TABLE users (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100) NOT NULL UNIQUE,
full_name VARCHAR(100) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) engine=InnoDB;
CREATE TABLE orders (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
userid INT NOT NULL,
amount DECIMAL(8,2) NOT NULL,
product_name VARCHAR(200) NOT NULL,
FOREIGN KEY (userid) REFERENCES users (id) ON DELETE CASCADE
) engine=InnoDB;

คุณจะสังเกตเห็นส่วนคำสั่ง FOREIGN KEY เป็นบรรทัดสุดท้าย บรรทัดนี้ระบุตารางนี้มีแถวย่อยที่ลิงก์โดย รหัสผู้ใช้ ไปที่แถวหลักซึ่งก็คือ NS คอลัมน์ของ ผู้ใช้ ตาราง. สิ่งนี้หมายความว่า ทุกครั้งที่แถวถูกลบออกจาก ผู้ใช้ ตาราง mySQL จะลบแถวที่เกี่ยวข้องทั้งหมดออกจาก .โดยอัตโนมัติ คำสั่ง ตารางช่วยรับรองความสมบูรณ์ของโครงสร้างภายในฐานข้อมูลของคุณ

สังเกตด้วย เครื่องยนต์=InnoDB ที่ส่วนท้ายของข้อความข้างต้น แม้ว่า InnoDB จะเป็นประเภทตารางเริ่มต้นของ mySQL แต่ก็ไม่เสมอไป ดังนั้นควรเพิ่มสิ่งนี้เพื่อให้อยู่ในด้านความปลอดภัย เนื่องจาก cascading ใช้งานได้กับตาราง InnoDB เท่านั้น

วิธีตัดสินใจว่าจะเล่นเกมอะไร

ออกแบบด้วยความมั่นใจ

ตอนนี้คุณพร้อมสำหรับการสร้างสคีมาฐานข้อมูล mySQL ที่แข็งแกร่งและมีโครงสร้างที่ดีแล้ว เมื่อใช้ความรู้ข้างต้น คุณจะสามารถเขียนสคีมาที่มีการจัดระเบียบอย่างดี ซึ่งให้ทั้งประสิทธิภาพและความสมบูรณ์ของโครงสร้าง

ด้วยสคีมาของคุณ ให้แน่ใจว่าคุณรู้วิธีใช้มันกับสิ่งเหล่านี้ คำสั่ง SQL ที่จำเป็น .

แบ่งปัน แบ่งปัน ทวีต อีเมล วิธีสืบค้นตารางฐานข้อมูลหลายตารางพร้อมกันด้วย SQL Joins

เรียนรู้วิธีใช้การรวม SQL เพื่อปรับปรุงการสืบค้น ประหยัดเวลา และทำให้คุณรู้สึกเหมือนเป็นผู้ใช้ SQL

อ่านต่อไป
หัวข้อที่เกี่ยวข้อง เกี่ยวกับผู้เขียน Matt Dizak(ตีพิมพ์บทความ 18 บทความ) เพิ่มเติมจาก Matt Dizak

สมัครรับจดหมายข่าวของเรา

เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!

คลิกที่นี่เพื่อสมัครสมาชิก