เครื่องมืออนุมาน Schema
การเชื่อมต่อใหม่ทุกครั้งเริ่มต้นเหมือนกัน: API ส่งก้อน JSON กลับมา และคุณต้องมีโมเดลไว้เก็บมัน การพิมพ์ 20 ฟิลด์ด้วยมือนั้นน่าเบื่อและเกิดข้อผิดพลาดได้ง่าย เครื่องมือนี้แจงออบเจ็กต์ JSON ตัวอย่าง เลือกชนิดคอลัมน์ให้แต่ละคีย์ และสร้างสคีมาที่พร้อมวางในรูปแบบที่คุณต้องการ: SQL CREATE TABLE, สคีมา Mongoose หรือนิยามโมเดล Sequelize
วิธีอนุมานสคีมาจาก JSON
-
1
วางออบเจ็กต์ตัวอย่าง
ใส่ออบเจ็กต์ JSON หนึ่งตัว หรืออาร์เรย์ของออบเจ็กต์ (ระบบจะอ่านออบเจ็กต์แรกในอาร์เรย์) ใช้เรกคอร์ดที่สมบูรณ์ซึ่งกรอกทุกฟิลด์ เพื่อให้ทุกคอลัมน์ได้รับชนิด
-
2
เลือกรูปแบบผลลัพธ์
SQL CREATE TABLE (สไตล์ Postgres / MySQL / SQLite), Mongoose สำหรับแอป Node.js ที่ใช้ MongoDB หรือ Sequelize สำหรับแอป Node.js แบบเชิงสัมพันธ์
-
3
ตั้งชื่อตารางหรือโมเดล
กำหนดชื่อตารางในผลลัพธ์ SQL หรือชื่อสคีมาหรือโมเดลในผลลัพธ์ Mongoose และ Sequelize
-
4
คัดลอกสคีมาที่สร้างขึ้น
วางลงในไฟล์ migration หรือไฟล์โมเดลได้เลยเพื่อใช้เป็นจุดเริ่มต้น
ชนิดถูกอนุมานอย่างไร
การอนุมานเป็นการคาดเดาที่ดีที่สุด เครื่องมืออ่านค่าต่าง ๆ ของออบเจ็กต์ตัวอย่างหนึ่งตัว แล้วเลือกชนิดคอลัมน์ให้แต่ละคีย์จากค่าที่เห็น มันไม่เปรียบเทียบเรกคอร์ดและไม่เดาว่าฟิลด์ใดเป็นทางเลือก ดังนั้นจงให้ออบเจ็กต์ที่สมบูรณ์และเป็นตัวแทนแก่มัน
การจับคู่ชนิด
| ค่า JSON | ชนิด SQL | ชนิด Mongoose | ชนิด Sequelize |
|---|---|---|---|
42 (จำนวนเต็ม) |
INTEGER | Number | DataTypes.INTEGER |
3.14 (ทศนิยม) |
DECIMAL(10,2) | Number | DataTypes.FLOAT |
"สวัสดี" (สตริงสั้น) |
VARCHAR(255) | String | DataTypes.STRING |
| สตริงยาวเกิน 255 อักขระ | 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] (อาร์เรย์) |
JSON | Object | DataTypes.JSON |
{ "nested": ... } (ออบเจ็กต์) |
JSON | Object | DataTypes.JSON |
สิ่งที่ผลลัพธ์ SQL เพิ่มให้
SQL CREATE TABLE จะเริ่มด้วยคีย์หลักแบบเพิ่มค่าอัตโนมัติเสมอ:
id INTEGER PRIMARY KEY AUTOINCREMENT,
ผลลัพธ์ Mongoose และ Sequelize จะไม่เพิ่มฟิลด์ id เพราะไลบรารีทั้งสองสร้างให้คุณอยู่แล้ว
ค่าเริ่มต้นและข้อจำกัดที่ควรจำ
- อ่านออบเจ็กต์เดียว ถ้าคุณวางอาร์เรย์ ระบบจะตรวจเฉพาะสมาชิกตัวแรก ดังนั้นฟิลด์ของมันจึงกำหนดทั้งสคีมา
- คีย์ที่ขาดหายคือคอลัมน์ที่ไม่มี ฟิลด์ที่ไม่มีในออบเจ็กต์ตัวอย่างจะไม่ปรากฏในผลลัพธ์เลย
- ออบเจ็กต์และอาร์เรย์ที่ซ้อนกันจะกลายเป็นคอลัมน์ JSON เดียว เครื่องมือไม่แตกมันออกเป็นตารางย่อย สคีมาย่อย หรือคีย์นอก
- ไม่มีการสร้างข้อจำกัดใด ๆ คอลัมน์ถูกสร้างโดยไม่มี
NOT NULLความไม่ซ้ำ หรือดัชนี ดังนั้นทั้งหมดจึงยอมรับค่า null จนกว่าคุณจะรัดกุมขึ้น
เคล็ดลับให้ผลลัพธ์เรียบร้อยขึ้น
- ใช้เรกคอร์ดที่กรอกครบถ้วน ฟิลด์ที่เป็น
nullในตัวอย่างของคุณจะถูกกำหนดชนิดเป็นข้อความ/สตริง ซึ่งมักไม่ใช่สิ่งที่คุณต้องการ - เปลี่ยนชื่อคำสงวนหลังจากสร้าง ฟิลด์อย่าง
type,orderหรือuserจะต้องใส่เครื่องหมายคำพูดใน SQL - มองผลลัพธ์เป็นโครงร่าง ปรับความยาว VARCHAR และความแม่นยำ DECIMAL เพิ่มดัชนี ทำเครื่องหมายคอลัมน์เป็น
NOT NULLและเลือกคีย์จริงก่อนนำขึ้นใช้งาน
คำถามที่พบบ่อย
ออบเจ็กต์หรืออาร์เรย์ที่ซ้อนกันจะถูกจับคู่เป็นคอลัมน์ JSON เดียว (JSON ใน SQL และ Sequelize, ฟิลด์ชนิด Object ใน Mongoose) เครื่องมือไม่แตกโครงสร้างที่ซ้อนกันออกเป็นตารางย่อยหรือสคีมาย่อย ดังนั้นหากจำเป็นคุณต้องแผ่หรือทำ normalize เอง
ไม่ ถ้าคุณวางอาร์เรย์ของออบเจ็กต์ ระบบจะตรวจเฉพาะออบเจ็กต์แรก และคีย์ของมันเป็นตัวกำหนดสคีมา โปรดตรวจให้แน่ใจว่าเรกคอร์ดแรกนั้นมีทุกฟิลด์ที่คุณสนใจ พร้อมค่าจริงในแต่ละฟิลด์
ไม่ แต่ละคอลัมน์ถูกสร้างพร้อมชนิดเท่านั้น ดังนั้นผลลัพธ์จึงไม่มีคีย์นอก ข้อจำกัดความไม่ซ้ำ ดัชนี หรือประโยค NOT NULL จงเพิ่มด้วยมือ เพราะสิ่งเหล่านี้เข้ารหัสเจตนาที่เครื่องมือไม่อาจกู้คืนได้จากตัวอย่าง
เลือก SQL CREATE TABLE สำหรับ migration ฐานข้อมูลเชิงสัมพันธ์, Mongoose Schema สำหรับแอป Node.js บน MongoDB หรือ Sequelize Model สำหรับแอป Node.js บนฐานข้อมูลเชิงสัมพันธ์ผ่าน ORM ของ Sequelize
เครื่องมือที่เกี่ยวข้อง
ตารางอ้างอิง ASCII
ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL
อ้างอิงตัวอักษร HTML
รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ
ตารางอ้างอิงแป้นพิมพ์ลัด
ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux
ตัวตรวจสอบอีเมล
ตรวจสอบที่อยู่อีเมล: ตรวจไวยากรณ์ RFC 5322 ค้นหา MX เรกคอร์ดแบบเรียลไทม์ พร้อมรายละเอียดส่วนท้องถิ่น โดเมน และความยาว ไม่มีการส่งอีเมลใด ๆ
ตัวตรวจสอบความถูกต้องของ JSON
ตรวจสอบไวยากรณ์ JSON และตรวจจับเครื่องหมายจุลภาคต่อท้าย เครื่องหมายอัญประกาศที่ผิด คีย์ซ้ำ และโครงสร้างที่ผิดรูปแบบ พร้อมระบุตำแหน่งข้อผิดพลาดอย่างแม่นยำ
ตัวลดรูปพีชคณิตบูลีน
ประเมินนิพจน์บูลีนสำหรับทุกชุดอินพุตและดูตารางค่าความจริงที่สมบูรณ์ รองรับตัวแปรสูงสุดห้าตัวและตัวดำเนินการ &, |, !, ^
เครื่องมือนี้มีให้บริการในภาษาอื่น
- Schema-Inferenz-Tool [DE]
- Narzędzie do wnioskowania schematu [PL]
- Herramienta de Inferencia de Esquema [ES]
- Alat Inferensi Skema [ID]
- Công cụ suy luận lược đồ [VI]
- أداة استنتاج المخطط [AR]
- Ferramenta de Inferência de Esquema [PT]
- スキーマ推論ツール [JA]
- Outil d'inférence de schéma [FR]
- 스키마 추론 도구 [KO]
- Schemainferensverktyg [SV]
- Schema-inferentie-tool [NL]
- Strumento di Inferenza Schema [IT]
- Инструмент вывода схемы [RU]
- Şema Çıkarım Aracı [TR]
- 模式推断工具 [ZH]
- Schema Inference Tool [EN]