Công cụ suy luận lược đồ
Mọi tích hợp mới đều bắt đầu như nhau: một API trả về một khối JSON và bạn cần một mô hình để lưu nó. Gõ tay 20 trường thì tẻ nhạt và dễ sai. Công cụ này phân tích một đối tượng JSON mẫu, chọn kiểu cột cho từng khóa và tạo ra một lược đồ sẵn sàng để dán ở định dạng bạn muốn: SQL CREATE TABLE, lược đồ Mongoose hoặc định nghĩa mô hình Sequelize.
Cách suy luận lược đồ từ JSON
-
1
Dán một đối tượng mẫu
Nhập một đối tượng JSON, hoặc một mảng các đối tượng (đối tượng đầu tiên trong mảng sẽ được đọc). Hãy dùng một bản ghi đầy đủ với mọi trường đều có giá trị để mỗi cột nhận được một kiểu.
-
2
Chọn định dạng đầu ra
SQL CREATE TABLE (kiểu Postgres / MySQL / SQLite), Mongoose cho ứng dụng Node.js dùng MongoDB, hoặc Sequelize cho ứng dụng Node.js quan hệ.
-
3
Đặt tên bảng hoặc mô hình
Đặt tên bảng trong đầu ra SQL, hoặc tên lược đồ/mô hình trong đầu ra Mongoose và Sequelize.
-
4
Sao chép lược đồ đã tạo
Dán thẳng vào một migration hoặc một tệp mô hình để làm điểm khởi đầu.
Cách suy luận các kiểu
Suy luận là một phỏng đoán tốt nhất. Công cụ đọc các giá trị của một đối tượng mẫu và chọn kiểu cột cho từng khóa dựa trên giá trị nó thấy. Nó không so sánh các bản ghi và không đoán trường nào là tùy chọn, vì vậy hãy đưa cho nó một đối tượng đầy đủ và tiêu biểu.
Ánh xạ kiểu
| Giá trị JSON | Kiểu SQL | Kiểu Mongoose | Kiểu Sequelize |
|---|---|---|---|
42 (số nguyên) |
INTEGER | Number | DataTypes.INTEGER |
3.14 (số thập phân) |
DECIMAL(10,2) | Number | DataTypes.FLOAT |
"xin chào" (chuỗi ngắn) |
VARCHAR(255) | String | DataTypes.STRING |
| chuỗi dài hơn 255 ký tự | TEXT | String | DataTypes.STRING |
"2026-04-18T10:00:00Z" |
TIMESTAMP | Date | DataTypes.DATE |
"2026-04-18" |
DATE | Date | DataTypes.DATEONLY |
true / false |
BOOLEAN | Boolean | DataTypes.BOOLEAN |
null |
TEXT | String | DataTypes.STRING |
[1, 2, 3] (mảng) |
JSON | Object | DataTypes.JSON |
{ "nested": ... } (đối tượng) |
JSON | Object | DataTypes.JSON |
Đầu ra SQL bổ sung gì
SQL CREATE TABLE luôn bắt đầu bằng một khóa chính tự tăng:
id INTEGER PRIMARY KEY AUTOINCREMENT,
Đầu ra Mongoose và Sequelize không thêm trường id, vì cả hai thư viện đều tự tạo một trường cho bạn.
Giá trị mặc định và giới hạn cần nhớ
- Chỉ một đối tượng được đọc. Nếu bạn dán một mảng, chỉ phần tử đầu tiên được kiểm tra, nên chính các trường của nó định nghĩa toàn bộ lược đồ.
- Khóa thiếu là cột không tồn tại. Các trường không có trong đối tượng mẫu đơn giản là không xuất hiện trong đầu ra.
- Đối tượng và mảng lồng nhau trở thành một cột JSON duy nhất. Công cụ không khai triển chúng thành bảng con, lược đồ con hay khóa ngoại.
- Không có ràng buộc nào được tạo. Các cột được xuất ra mà không có
NOT NULL, tính duy nhất hay chỉ mục, nên tất cả đều cho phép null cho đến khi bạn siết lại.
Mẹo cho kết quả gọn gàng hơn
- Dùng một bản ghi được điền đầy đủ. Một trường là
nulltrong mẫu của bạn sẽ được gán kiểu text/string, điều hiếm khi là thứ bạn muốn. - Đổi tên các từ khóa dành riêng sau khi tạo. Các trường như
type,orderhoặcusersẽ cần đặt trong dấu ngoặc trong SQL. - Xem đầu ra như một khung nền. Điều chỉnh độ dài VARCHAR và độ chính xác DECIMAL, thêm chỉ mục, đánh dấu cột là
NOT NULLvà chọn các khóa thực sự trước khi đưa vào vận hành.
Câu hỏi thường gặp
Một đối tượng hoặc mảng lồng nhau được ánh xạ tới một cột JSON duy nhất (JSON trong SQL và Sequelize, một trường kiểu Object trong Mongoose). Công cụ không khai triển các cấu trúc lồng nhau thành bảng con hay lược đồ con, nên bạn tự làm phẳng hoặc chuẩn hóa chúng nếu cần.
Không. Nếu bạn dán một mảng các đối tượng, chỉ đối tượng đầu tiên được kiểm tra và chính các khóa của nó định nghĩa lược đồ. Hãy đảm bảo bản ghi đầu tiên đó có mọi trường bạn quan tâm, với một giá trị thực trong từng trường.
Không. Mỗi cột chỉ được xuất ra với một kiểu, nên đầu ra không có khóa ngoại, ràng buộc duy nhất, chỉ mục hay mệnh đề NOT NULL. Hãy tự thêm chúng, vì chúng mã hóa một ý định mà công cụ không thể khôi phục từ một mẫu.
Chọn SQL CREATE TABLE cho một migration cơ sở dữ liệu quan hệ, Mongoose Schema cho một ứng dụng Node.js trên MongoDB, hoặc Sequelize Model cho một ứng dụng Node.js trên cơ sở dữ liệu quan hệ thông qua ORM Sequelize.
Công cụ liên quan
Bảng tham chiếu ASCII
Bảng ASCII đầy đủ từ 0 đến 127 với giá trị thập phân, thập lục phân, bát phân, nhị phân và ký hiệu tham chiếu ký tự số HTML, gồm NUL, LF và DEL.
Tham chiếu ký tự HTML
Danh sách có thể tìm kiếm các thực thể HTML, mã tên và mã số tương ứng của chúng, cùng chức năng sao chép chỉ với một cú nhấp cho các ký tự đặc biệt và biểu tượng.
Bảng tham khảo phím tắt
Tìm phím tắt mặc định theo tài liệu của VS Code, Chrome và Bash dùng GNU Readline trên macOS, Windows và Linux.
Trình chuyển ASCII sang Hex
Biến văn bản ASCII thành giá trị byte thập lục phân. Đầu ra dùng hai chữ số hex cho mỗi ký tự, sẵn sàng cho memory dump, packet trace hoặc bảng firmware.
Trình giải mã mã JavaScript (JavaScript Deobfuscator)
Giải mã mã JavaScript đã được rút gọn hoặc nén bằng cách đổi tên biến, giải mã chuỗi và mảng, đảo ngược cấu trúc dòng điều khiển và làm đẹp mã.
Chuyển đổi HTML sang BBCode
Chuyển đổi các đoạn mã HTML thành BBCode dành cho phpBB, vBulletin và các phần mềm diễn đàn khác không hỗ trợ định dạng HTML thô.
Công cụ này có phiên bản bằng các ngôn ngữ khác
- Herramienta de Inferencia de Esquema [ES]
- Outil d'inférence de schéma [FR]
- Alat Inferensi Skema [ID]
- Schemainferensverktyg [SV]
- スキーマ推論ツール [JA]
- 스키마 추론 도구 [KO]
- Schema-inferentie-tool [NL]
- เครื่องมืออนุมาน Schema [TH]
- أداة استنتاج المخطط [AR]
- Schema-Inferenz-Tool [DE]
- Narzędzie do wnioskowania schematu [PL]
- Ferramenta de Inferência de Esquema [PT]
- Schema Inference Tool [EN]
- Strumento di Inferenza Schema [IT]
- Инструмент вывода схемы [RU]
- Şema Çıkarım Aracı [TR]
- 模式推断工具 [ZH]