เอกสารนี้แปลโดย AI หากมีข้อมูลที่ไม่ถูกต้อง โปรดดูเวอร์ชันภาษาอังกฤษ
เราสามารถใช้ฐานข้อมูลภายนอกที่มีอยู่แล้วเป็น แหล่งข้อมูล ได้ครับ/ค่ะ ปัจจุบัน NocoBase รองรับฐานข้อมูลภายนอกดังต่อไปนี้: MySQL, MariaDB, PostgreSQL, MSSQL และ Oracle
หลังจากเปิดใช้งาน ปลั๊กอิน แล้ว คุณจะสามารถเลือกและเพิ่มฐานข้อมูลภายนอกได้จากเมนูแบบเลื่อนลง "เพิ่มใหม่" (Add new) ในส่วนของการจัดการ แหล่งข้อมูล ครับ/ค่ะ

กรอกข้อมูลสำหรับฐานข้อมูลที่คุณต้องการเชื่อมต่อครับ/ค่ะ

หลังจากเชื่อมต่อกับฐานข้อมูลภายนอกแล้ว NocoBase จะอ่าน คอลเลกชัน ทั้งหมดใน แหล่งข้อมูล โดยตรงครับ/ค่ะ ฐานข้อมูลภายนอกไม่รองรับการเพิ่ม คอลเลกชัน หรือการแก้ไขโครงสร้างตารางโดยตรง หากต้องการแก้ไข คุณสามารถดำเนินการผ่านไคลเอนต์ฐานข้อมูล จากนั้นคลิกปุ่ม "รีเฟรช" (Refresh) บนหน้าจอเพื่อซิงค์ข้อมูลครับ/ค่ะ

ฐานข้อมูลภายนอกจะอ่านและแสดงฟิลด์ของ คอลเลกชัน ที่มีอยู่โดยอัตโนมัติครับ/ค่ะ คุณสามารถดูและตั้งค่าชื่อฟิลด์, ชนิดข้อมูล (Field type) และชนิด UI (Field interface) ได้อย่างรวดเร็ว หรือจะคลิกปุ่ม "แก้ไข" (Edit) เพื่อปรับแต่งการตั้งค่าเพิ่มเติมก็ได้ครับ/ค่ะ

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

ดูรายละเอียดเพิ่มเติมได้ที่บท ฟิลด์ คอลเลกชัน / ภาพรวม ครับ/ค่ะ
NocoBase จะทำการแมปชนิดฟิลด์จากฐานข้อมูลภายนอกให้เป็นชนิดข้อมูล (Field type) และชนิด UI (Field Interface) ที่สอดคล้องกันโดยอัตโนมัติครับ/ค่ะ
| PostgreSQL | MySQL/MariaDB | ชนิดข้อมูล NocoBase | ชนิด UI NocoBase |
|---|---|---|---|
| BOOLEAN | BOOLEAN TINYINT(1) | boolean | checkbox switch |
| SMALLINT INTEGER SERIAL SMALLSERIAL | TINYINT SMALLINT MEDIUMINT INTEGER | integer boolean sort | integer sort checkbox switch select radioGroup |
| BIGINT BIGSERIAL | BIGINT | bigInt sort | integer sort checkbox switch select radioGroup unixTimestamp createdAt updatedAt |
| REAL | FLOAT | float | number percent |
| DOUBLE PRECISION | DOUBLE PRECISION | double | number percent |
| DECIMAL NUMERIC | DECIMAL | decimal | number percent currency |
| VARCHAR CHAR | VARCHAR CHAR | string password uuid nanoid | input phone password color icon select radioGroup uuid nanoid |
| TEXT | TEXT TINYTEXT MEDIUMTEXT LONGTEXT | text json | textarea markdown vditor richText url json |
| UUID | - | uuid | uuid |
| JSON JSONB | JSON | json | json |
| TIMESTAMP | DATETIME TIMESTAMP | date | date time createdAt updatedAt |
| DATE | DATE | dateOnly | datetime |
| TIME | TIME | time | time |
| - | YEAR | datetime | |
| CIRCLE | circle | json circle | |
| PATH GEOMETRY(LINESTRING) | LINESTRING | lineString | Json lineString |
| POINT GEOMETRY(POINT) | POINT | point | json point |
| POLYGON GEOMETRY(POLYGON) | POLYGON | polygon | json polygon |
| GEOMETRY | GEOMETRY | - | - |
| BLOB | BLOB | blob | - |
| ENUM | ENUM | enum | select radioGroup |
| ARRAY | - | array | multipleSelect checkboxGroup |
| BIT | BIT | - | - |
| SET | SET | set | multipleSelect checkboxGroup |
| RANGE | - | - | - |
ชนิดฟิลด์ที่ไม่รองรับจะถูกแสดงแยกต่างหากครับ/ค่ะ ฟิลด์เหล่านี้จะต้องได้รับการปรับปรุงจากนักพัฒนาเพื่อให้สามารถใช้งานได้ในภายหลัง

คอลเลกชัน ที่แสดงเป็นบล็อกจะต้องมีการตั้งค่าคีย์เป้าหมายการกรอง (Filter target key) ครับ/ค่ะ คีย์เป้าหมายการกรองนี้ใช้สำหรับกรองข้อมูลตามฟิลด์ที่เฉพาะเจาะจง และค่าของฟิลด์นั้นจะต้องไม่ซ้ำกัน โดยปกติแล้ว คีย์เป้าหมายการกรองจะถูกตั้งค่าเป็นฟิลด์ Primary Key ของ คอลเลกชัน แต่หากเป็นวิว (View) หรือ คอลเลกชัน ที่ไม่มี Primary Key หรือมี Composite Primary Key คุณจะต้องกำหนดคีย์เป้าหมายการกรองเองครับ/ค่ะ

เฉพาะ คอลเลกชัน ที่มีการตั้งค่าคีย์เป้าหมายการกรองเท่านั้นจึงจะสามารถเพิ่มลงในหน้าเพจได้ครับ/ค่ะ
