Hướng dẫn cho người mới bắt đầu để viết lược đồ cơ sở dữ liệu mySQL

Hướng dẫn cho người mới bắt đầu để viết lược đồ cơ sở dữ liệu mySQL

Khi phát triển một dự án phần mềm, một trong những khía cạnh quan trọng nhất, nền tảng và nội tại là một lược đồ cơ sở dữ liệu có cấu trúc thích hợp. Tương tự như khi xây nhà bạn cần đảm bảo nền móng được đặt đúng cách, nếu không cơ hội xây dựng được một ngôi nhà chất lượng sẽ giảm đi đáng kể.





Đáng ngạc nhiên là dễ dàng hơn người ta nghĩ, chúng ta hãy tìm hiểu các khía cạnh khác nhau được sử dụng để viết một lược đồ cơ sở dữ liệu được kiến ​​trúc tốt.





Tải xuống miễn phí phần mềm giọng nói thành văn bản cho Windows 10

Cú pháp TẠO BẢNG

Để bắt đầu, hãy mở trình soạn thảo văn bản yêu thích của bạn. Việc tạo một lược đồ cơ sở dữ liệu không yêu cầu gì hơn ngoài một tệp văn bản thuần túy. Cơ sở dữ liệu bao gồm nhiều bảng, mỗi bảng bao gồm các cột và cú pháp CREATE TABLE được sử dụng để tạo một bảng duy nhất. Đây là một ví dụ cơ bản:






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
);

Như bạn có thể thấy, điều này sẽ tạo ra một bảng cơ sở dữ liệu có tên người dùng bao gồm bốn cột. Đây phải là một câu lệnh SQL khá đơn giản bắt đầu bằng TẠO BẢNG , theo sau là tên của bảng cơ sở dữ liệu, sau đó trong ngoặc đơn, các cột của bảng được phân tách bằng dấu phẩy.

Sử dụng các loại cột chính xác

Như được hiển thị ở trên, các cột mà bảng sẽ bao gồm được phân tách bằng dấu phẩy. Mỗi định nghĩa cột bao gồm ba phần giống nhau:



COL_NAME TYPE [OPTIONS]

Tên của cột, theo sau là loại cột, sau đó là bất kỳ tham số tùy chọn nào. Chúng ta sẽ đi vào các tham số tùy chọn sau, nhưng tập trung vào loại cột, bên dưới liệt kê các loại cột được sử dụng phổ biến nhất hiện có:

Đối với tất cả các ý định, các loại cột ở trên là tất cả những gì bạn cần để viết các lược đồ cơ sở dữ liệu mySQL được xây dựng tốt.





Xác định Tùy chọn Cột

Khi xác định cột cũng có nhiều tùy chọn khác nhau mà bạn có thể chỉ định. Dưới đây là một ví dụ khác về TẠO BẢNG tuyên bố:


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
);

Ở trên có vẻ hơi khó khăn, nhưng đừng lo, nó khá đơn giản. Chia nhỏ, đây là những gì đang xảy ra trong tuyên bố trên:





  • Bạn nên luôn sử dụng NOT NULL trên tất cả các cột có thể để giúp tăng tốc độ và hiệu suất của bảng. Điều này chỉ đơn giản là chỉ định cột không được để trống / null khi một hàng được chèn vào.
  • Luôn cố gắng giữ kích thước cột càng nhỏ càng tốt, vì nó giúp cải thiện tốc độ và hiệu suất.
  • Các Tôi cột là một số nguyên, cũng là khóa chính của bảng có nghĩa là nó là duy nhất và sẽ tăng lên mỗi khi một bản ghi được chèn vào. Điều này thường được sử dụng trên tất cả các bảng bạn tạo để bạn có thể dễ dàng tham chiếu bất kỳ hàng đơn lẻ nào trong bảng.
  • Các trạng thái là một ENUM và phải có giá trị là 'hoạt động' hoặc 'không hoạt động'. Nếu không có giá trị nào được chỉ định, một hàng mới sẽ bắt đầu với trạng thái 'hoạt động'.
  • Các thăng bằng cột bắt đầu từ 0 cho mọi hàng mới và là một số tiền được định dạng hai hai dấu thập phân.
  • Các ngày sinh cột chỉ đơn giản là NGÀY nhưng cũng cho phép giá trị rỗng vì ngày sinh có thể không được biết khi tạo.
  • Cuối cùng, create_at cột là TIMESTAMP và mặc định là thời gian hiện tại khi hàng được chèn.

Trên đây là một ví dụ về một bảng cơ sở dữ liệu có cấu trúc độc đáo và sẽ được sử dụng làm ví dụ về sau.

Một trong những lợi thế lớn nhất của việc sử dụng cơ sở dữ liệu quan hệ như mySQL là sự hỗ trợ tuyệt vời của nó cho các ràng buộc khóa ngoại và xếp tầng. Đây là khi bạn liên kết hai bảng với nhau bằng một cột, tạo thành mối quan hệ cha mẹ, vì vậy khi hàng cha bị xóa, các hàng con cần thiết cũng tự động bị xóa.

Đây là một ví dụ:


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;

Bạn sẽ nhận thấy mệnh đề NGOẠI KHÓA ở dòng cuối cùng. Dòng này chỉ đơn giản cho biết bảng này chứa các hàng con được liên kết bởi tên người dùng cột vào hàng mẹ của chúng, là cột Tôi cột của người dùng bàn. Điều này có nghĩa là, bất kỳ lúc nào một hàng bị xóa khỏi người dùng bảng, mySQL sẽ tự động xóa tất cả các hàng tương ứng khỏi đơn đặt hàng bảng giúp đảm bảo tính toàn vẹn của cấu trúc trong cơ sở dữ liệu của bạn.

Cũng lưu ý engine = InnoDB ở cuối câu lệnh trên. Mặc dù InnoDB bây giờ là loại bảng mySQL mặc định, nhưng nó không phải lúc nào cũng vậy, vì vậy điều này nên được thêm vào chỉ để an toàn, vì xếp tầng chỉ hoạt động với các bảng InnoDB.

máy tính tự bật từ chế độ ngủ

Thiết kế với sự tự tin

Bây giờ bạn đang trên con đường xây dựng kiến ​​trúc các lược đồ cơ sở dữ liệu mySQL có cấu trúc tốt, vững chắc. Sử dụng kiến ​​thức ở trên, giờ đây bạn có thể viết các lược đồ được tổ chức tốt cung cấp cả hiệu suất và tính toàn vẹn của cấu trúc.

Với lược đồ của bạn tại chỗ, hãy đảm bảo rằng bạn biết cách sử dụng nó với những các lệnh SQL cơ bản .

Đăng lại Đăng lại tiếng riu ríu E-mail Cách truy vấn nhiều bảng cơ sở dữ liệu cùng lúc với SQL Joins

Tìm hiểu cách sử dụng các phép nối SQL để sắp xếp hợp lý các truy vấn, tiết kiệm thời gian và khiến bạn cảm thấy như một người dùng SQL thành thạo.

Đọc tiếp
Chủ đề liên quan Giới thiệu về tác giả Matt Dizak(18 bài báo đã xuất bản) Xem thêm từ Matt Dizak

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký