Chuyển đến nội dung chính

Cấu trúc Bảng

TablePro cung cấp giao diện trực quan để khám phá và sửa đổi cấu trúc bảng database. Xem định nghĩa cột, index, foreign key và DDL (câu lệnh CREATE TABLE) cho bất kỳ bảng nào.
Table Structure

Truy Cập Cấu Trúc Bảng

Để xem cấu trúc của bảng:
1

Chọn Bảng

Click vào tên bảng trong sidebar
2

Mở Tab Structure

Click tab Structure (bên dưới data grid)
3

Khám Phá

Điều hướng giữa các tab Columns, Indexes, Foreign Keys và DDL
Hoặc click chuột phải vào bảng và chọn Show Structure.

Tab Columns

Tab Columns hiển thị tất cả định nghĩa cột:
Columns tab

Thông Tin Cột

Thuộc tínhMô tả
NameTên cột
TypeKiểu dữ liệu (VARCHAR, INT, v.v.)
NullableCó cho phép giá trị NULL không
DefaultGiá trị mặc định nếu không chỉ định
ExtraThuộc tính bổ sung (AUTO_INCREMENT, v.v.)
KeyPrimary key (PRI), Foreign key (FOR), v.v.

Sao Chép Dạng TSV

Click chuột phải vào structure grid để sao chép định nghĩa cột dạng TSV (giá trị phân tách bằng tab). Điều này hữu ích để dán vào bảng tính hoặc công cụ tài liệu.

Kiểu Dữ Liệu Theo Database

Kiểu dữ liệu MySQL phổ biến:
Danh mụcLoại
SốINT, BIGINT, DECIMAL, FLOAT, DOUBLE
ChuỗiVARCHAR, TEXT, CHAR, ENUM
Ngày/GiờDATE, DATETIME, TIMESTAMP, TIME
Nhị phânBLOB, BINARY, VARBINARY
JSONJSON

Tab Indexes

Xem tất cả index được định nghĩa trên bảng:
Indexes tab

Thông Tin Index

Thuộc tínhMô tả
NameTên index
ColumnsCác cột được bao gồm trong index
TypeBTREE, HASH, FULLTEXT, v.v.
UniqueIndex có ép buộc tính duy nhất không
PrimaryĐây có phải là primary key không

Loại Index

LoạiSử dụng
PRIMARYRàng buộc primary key
UNIQUERàng buộc/index unique
INDEXIndex thông thường để tăng hiệu suất
FULLTEXTTìm kiếm full-text (MySQL)
SPATIALDữ liệu không gian địa lý (PostGIS)

Tab Foreign Keys

Xem quan hệ foreign key:
Foreign Keys tab

Thông Tin Foreign Key

Thuộc tínhMô tả
NameTên ràng buộc
ColumnCột cục bộ
ReferencesBảng và cột đích
On DeleteHành động khi hàng được tham chiếu bị xóa
On UpdateHành động khi hàng được tham chiếu bị cập nhật

Hành Động Tham Chiếu

Hành độngMô tả
RESTRICTNgăn delete/update nếu được tham chiếu
CASCADEDelete/update các hàng tham chiếu
SET NULLĐặt cột tham chiếu thành NULL
SET DEFAULTĐặt thành giá trị mặc định
NO ACTIONTương tự RESTRICT (kiểm tra hoãn lại)

Tab DDL

Xem câu lệnh CREATE TABLE cho bảng:
DDL tab

Sao Chép DDL

  1. Mở tab DDL
  2. Chọn tất cả (Cmd+A)
  3. Sao chép (Cmd+C)
Sử dụng DDL cho:
  • Tạo lại bảng trong database khác
  • Version control cho thay đổi schema
  • Tài liệu
  • Tạo bảng tương tự

Ví Dụ DDL

CREATE TABLE `users` (
  `id` int NOT NULL AUTO_INCREMENT,
  `email` varchar(255) NOT NULL,
  `name` varchar(100) DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `email` (`email`),
  KEY `created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Metadata Bảng

Thông tin bổ sung về bảng có thể được hiển thị:
Thuộc tínhMô tả
EngineStorage engine (MySQL: InnoDB, MyISAM)
CollationCharacter collation
Row CountSố hàng ước tính
Data SizeKích thước dữ liệu bảng
Index SizeKích thước dữ liệu index
CommentComment/mô tả bảng

Sửa Đổi Cấu Trúc

Sửa đổi cấu trúc thay đổi schema database của bạn. Luôn sao lưu dữ liệu quan trọng trước khi thực hiện thay đổi.

Trình Soạn Thảo Cấu Trúc Trực Quan

TablePro cung cấp giao diện trực quan để sửa đổi cấu trúc bảng trực tiếp — không cần SQL:

Thêm Cột

  1. Mở tab Structure > Columns
  2. Click nút + để thêm cột mới
  3. Đặt thuộc tính cột: tên, loại, nullable, mặc định, auto-increment, comment
  4. Click Apply để xem trước và thực thi các thay đổi

Sửa Đổi Cột

  1. Click vào cột trong tab Columns
  2. Chỉnh sửa thuộc tính trong panel chi tiết
  3. Các thay đổi được theo dõi với hỗ trợ undo/redo
  4. Click Apply để xem trước SQL ALTER TABLE

Xóa Cột

  1. Chọn cột cần xóa
  2. Click nút - hoặc nhấn Delete
  3. Xác nhận việc xóa
  4. Apply các thay đổi

Xem Trước Thay Đổi Schema

Trước khi áp dụng các thay đổi cấu trúc, TablePro hiển thị xem trước SQL ALTER TABLE được tạo. Điều này cho phép bạn:
  • Xem lại SQL chính xác sẽ được thực thi
  • Xác minh các thay đổi phù hợp với ý định của bạn
  • Hủy nếu các thay đổi không như mong đợi

Undo/Redo

Các thay đổi cấu trúc hỗ trợ undo/redo đầy đủ:
  • Nhấn Cmd+Z để undo thay đổi
  • Nhấn Cmd+Shift+Z để redo thay đổi
  • Các thay đổi được theo dõi cho đến khi áp dụng vào database
  • Xem Change Tracking để biết chi tiết

Thêm Cột qua SQL

Bạn cũng có thể thêm cột trực tiếp bằng SQL:
-- MySQL
ALTER TABLE users ADD COLUMN phone VARCHAR(20) AFTER email;

-- PostgreSQL
ALTER TABLE users ADD COLUMN phone VARCHAR(20);

-- SQLite (ALTER TABLE bị giới hạn)
ALTER TABLE users ADD COLUMN phone TEXT;

Sửa Đổi Cột qua SQL

-- MySQL
ALTER TABLE users MODIFY COLUMN name VARCHAR(200) NOT NULL;

-- PostgreSQL
ALTER TABLE users ALTER COLUMN name TYPE VARCHAR(200);
ALTER TABLE users ALTER COLUMN name SET NOT NULL;

-- SQLite (yêu cầu tạo lại bảng)
-- Xem tài liệu SQLite để biết cách giải quyết

Xóa Cột qua SQL

-- MySQL/PostgreSQL
ALTER TABLE users DROP COLUMN phone;

-- SQLite (yêu cầu tạo lại bảng)

Quản Lý Index

-- Tạo index
CREATE INDEX idx_users_email ON users(email);

-- Tạo unique index
CREATE UNIQUE INDEX idx_users_username ON users(username);

-- Xóa index
DROP INDEX idx_users_email ON users;  -- MySQL
DROP INDEX idx_users_email;  -- PostgreSQL

Quản Lý Foreign Key

-- Thêm foreign key
ALTER TABLE orders
ADD CONSTRAINT fk_orders_user
FOREIGN KEY (user_id) REFERENCES users(id)
ON DELETE CASCADE;

-- Xóa foreign key
ALTER TABLE orders DROP FOREIGN KEY fk_orders_user;  -- MySQL
ALTER TABLE orders DROP CONSTRAINT fk_orders_user;  -- PostgreSQL

Làm Mới Cấu Trúc

Sau khi thực hiện thay đổi schema:
  1. Qua sidebar: Click chuột phải vào bảng > Refresh
  2. Qua menu: View > Refresh
  3. Tự động: Thay đổi được thực hiện trong TablePro tự động làm mới

Thực Hành Tốt Nhất

Thiết Kế Schema

  1. Sử dụng kiểu dữ liệu phù hợp: Chọn loại nhỏ nhất phù hợp với dữ liệu của bạn
  2. Thêm index cho query: Index các cột được sử dụng trong WHERE và JOIN
  3. Định nghĩa foreign key: Duy trì tính toàn vẹn tham chiếu
  4. Sử dụng NOT NULL: Khi cột phải luôn có giá trị
  5. Thêm giá trị mặc định: Cung cấp giá trị mặc định hợp lý cho cột tùy chọn

Quy Ước Đặt Tên

Phần tửQuy ướcVí dụ
BảngSố nhiều, snake_caseusers, order_items
CộtSố ít, snake_caseuser_id, created_at
Indexidx_table_columnsidx_users_email
Foreign Keyfk_table_referencefk_orders_user
Primary Keyid hoặc table_idid, user_id

Cân Nhắc Hiệu Suất

  1. Primary key: Mọi bảng nên có primary key
  2. Index foreign key: Index các cột foreign key
  3. Index tổng hợp: Sắp xếp cột theo tính chọn lọc
  4. Tránh over-indexing: Index làm chậm ghi

Khắc Phục Sự Cố

Cấu Trúc Không Tải

  1. Kiểm tra kết nối database
  2. Xác minh người dùng có quyền xem schema
  3. Làm mới kết nối

Thiếu Cột

  1. Làm mới cấu trúc bảng
  2. Kiểm tra xem cột có được thêm trong transaction chưa commit không
  3. Xác minh bạn đang xem đúng database/schema

Lỗi Cú Pháp DDL

Khi sao chép DDL sang database khác:
  1. Kiểm tra sự khác biệt cú pháp cụ thể theo database
  2. Điều chỉnh kiểu dữ liệu cho database đích
  3. Xóa tính năng không được hỗ trợ (ví dụ: MySQL ENGINE cho PostgreSQL)

Các Bước Tiếp Theo