MySQL

Nguồn dữ liệu: MySQL bên ngoàiStandard Edition+

Giới thiệu

MySQL có thể được kết nối với NocoBase dưới dạng cơ sở dữ liệu bên ngoài. Sau khi kết nối, NocoBase sẽ đọc các bảng, trường và chế độ xem trong MySQL, đồng thời sử dụng chúng làm bảng dữ liệu trong nguồn dữ liệu bên ngoài.

Khác với cơ sở dữ liệu chính, cấu trúc bảng thực tế của MySQL bên ngoài vẫn do hệ thống nghiệp vụ ban đầu, ứng dụng khách cơ sở dữ liệu hoặc tập lệnh di chuyển quản lý. NocoBase chịu trách nhiệm đọc cấu trúc, lưu siêu dữ liệu trường, cấu hình khối trên trang, quyền, quy trình làm việc và API.

Mục cấu hìnhMô tả
Phiên bản được hỗ trợMySQL >= 5.7.
Phiên bản thương mạiHỗ trợ các phiên bản Standard, Professional và Enterprise.
Plugin tương ứng@nocobase/plugin-data-source-external-mysql
Giao thức tương thíchSử dụng giao thức MySQL để kết nối.

Các trường hợp phù hợp để sử dụng MySQL bên ngoài:

  • Kết nối với cơ sở dữ liệu MySQL của các hệ thống nghiệp vụ hiện có như ERP, MES, WMS và CRM
  • Tạo giao diện quản lý bằng NocoBase mà không cần di chuyển dữ liệu lịch sử
  • Thiết lập kiểm soát quyền, xử lý quy trình, điều chỉnh dữ liệu hoặc hiển thị báo cáo cho các bảng hiện có
  • Cấu trúc cơ sở dữ liệu tiếp tục do DBA, tập lệnh di chuyển hoặc hệ thống ban đầu quản lý
Lưu ý

MySQL bên ngoài không phải là cơ sở dữ liệu hệ thống của NocoBase. NocoBase sẽ không tiếp quản việc sao lưu, khôi phục, di chuyển hoặc thay đổi cấu trúc bảng của cơ sở dữ liệu này.

Cài đặt plugin

Đây là plugin thương mại. Để biết chi tiết về cách kích hoạt, hãy tham khảo: Hướng dẫn kích hoạt plugin thương mại

Thêm nguồn dữ liệu

Trong 「Quản lý nguồn dữ liệu」, nhấp vào 「Add new」, chọn MySQL, sau đó nhập thông tin kết nối.

20240507204820

Các cấu hình kết nối thường dùng như sau:

Cấu hìnhMô tả
Data source nameTên nhận diện nguồn dữ liệu, dùng để tham chiếu trong các khối trên trang, quyền, quy trình làm việc và API. Không thể thay đổi sau khi tạo.
Data source display nameTên hiển thị của nguồn dữ liệu trong giao diện. Nên sử dụng tên mà nhân viên nghiệp vụ có thể hiểu, chẳng hạn như 「ERP MySQL」 hoặc 「Cơ sở dữ liệu đơn hàng」.
Host / PortĐịa chỉ máy chủ và cổng MySQL. Cổng mặc định thường là 3306
DatabaseTên cơ sở dữ liệu MySQL cần kết nối.
Username / PasswordTài khoản và mật khẩu dùng để kết nối MySQL. NocoBase chỉ có thể đọc các đối tượng mà tài khoản này được phép truy cập, không cấp quyền hoặc đọc các đối tượng riêng tư của tài khoản khác.
Table prefixTiền tố tên bảng. Sau khi cấu hình, NocoBase chỉ đọc các bảng và chế độ xem khớp với tiền tố này, đồng thời tạo tên bảng không có tiền tố trong NocoBase.
Collections / Add all collectionsKiểm soát phạm vi kết nối. Khi bật 「Add all collections」, NocoBase sẽ kết nối tất cả bảng và chế độ xem trong phạm vi hiện tại; khi tắt, chỉ kết nối các đối tượng được chọn trong 「Collections」.
Enabled the data sourceCó bật nguồn dữ liệu này hay không. Sau khi tắt, cấu hình nguồn dữ liệu vẫn được giữ lại, nhưng các khối trên trang, quyền, quy trình làm việc và API sẽ không thể tiếp tục đọc dữ liệu từ nguồn này.
Mẹo

Nếu có nhiều đối tượng trong MySQL, trước tiên hãy thu hẹp phạm vi thông qua DatabaseTable prefix và 「Collections」. Chỉ kết nối các bảng và chế độ xem được ứng dụng hiện tại sử dụng để việc cấu hình quyền, xây dựng trang và bảo trì đồng bộ sau này trở nên nhẹ nhàng hơn.

Chọn bảng dữ liệu

Sau khi nhập thông tin kết nối, bạn có thể nhấp vào 「Load Collections」 để đọc các bảng dữ liệu và chế độ xem có sẵn trong MySQL. Kết quả đọc sẽ bị ảnh hưởng bởi tài khoản kết nối, DatabaseTable prefix và cấu hình 「Collections」.

Theo mặc định, 「Add all collections」 sẽ được bật, nghĩa là kết nối tất cả bảng và chế độ xem trong phạm vi hiện tại. Nếu chỉ muốn kết nối một số đối tượng, hãy tắt 「Add all collections」, sau đó chọn các bảng dữ liệu hoặc chế độ xem cần thiết trong danh sách.

add_new_database_configure_load_collection

Lưu ý

Mỗi nguồn dữ liệu bên ngoài chỉ có thể kết nối tối đa 500 bảng dữ liệu hoặc chế độ xem trong một lần. Nếu có nhiều đối tượng trong MySQL, bạn nên thu hẹp phạm vi trước thông qua DatabaseTable prefix hoặc 「Collections」.

Đồng bộ và cấu hình trường

Cấu trúc bảng MySQL bên ngoài được quản lý ở phía cơ sở dữ liệu. NocoBase sẽ không tạo trường, thay đổi kiểu trường hoặc xóa trường thực tế trong MySQL bên ngoài.

Khi cấu trúc bảng ở phía MySQL thay đổi, bạn có thể thực hiện 「Sync from database」 trong nguồn dữ liệu để đọc lại siêu dữ liệu của bảng và trường. Quá trình đồng bộ sẽ cập nhật thông tin về bảng dữ liệu, trường, khóa chính, khóa duy nhất và ánh xạ kiểu trường được lưu trong NocoBase, nhưng sẽ không xóa bảng hoặc dữ liệu thực tế trong MySQL.

Sau khi đồng bộ trường, bạn có thể cấu hình tiêu đề trường, kiểu trường (Field type) và thành phần trường (Field interface) trong NocoBase. Nếu cần tạo trường quan hệ NocoBase, siêu dữ liệu quan hệ cũng sẽ được lưu trong NocoBase và không tự động thêm trường khóa ngoại thực tế vào bảng MySQL.

Ánh xạ kiểu trường

NocoBase sẽ tự động ánh xạ kiểu trường MySQL sang Field type và Field interface phù hợp. Bạn có thể điều chỉnh cách hiển thị giao diện trong cấu hình trường.

Các ánh xạ thường gặp như sau:

Kiểu trường MySQLNocoBase Field typeField interface có thể chọn
TINYINTSMALLINTMEDIUMINTintegerbooleansortInteger、Sort、Checkbox、Switch、Select、Radio group。
INTINTEGERintegerunixTimestampsortInteger、Sort、Unix timestamp、Select、Radio group。
BIGINTbigIntsnowflakeIdunixTimestampsortInteger、Sort、Unix timestamp、Created at、Updated at。
FLOATDOUBLEfloatNumber、Percent。
DECIMALdecimalNumber、Percent、Currency。
CHARVARCHARstringuuidnanoidencryptionInput、Email、Phone、Password、Color、Icon、Select、Radio group、UUID、Nano ID。
TINYTEXTTEXTMEDIUMTEXTLONGTEXTtextTextarea、Markdown、Vditor、Rich text、URL。
DATEdateOnlyDate。
TIMEtimeTime。
DATETIMEdatetimeNoTzdatetimeTzdateDate、Time、Created at、Updated at。
TIMESTAMPdatetimeTzdateDate、Time、Created at、Updated at。
YEARstringintegerInput、Integer、Date。
JSONjsonarrayJSON。
Lưu ý

Các kiểu trường MySQL không được hỗ trợ sẽ được hiển thị riêng trong cấu hình trường. Những trường này cần được phát triển khả năng tương thích trước khi có thể sử dụng như trường thông thường trong NocoBase.

Khóa chính và mã nhận diện duy nhất của bản ghi

Đối với các bảng dữ liệu dùng để hiển thị và chỉnh sửa trong các khối trên trang, nên có khóa chính hoặc trường duy nhất. NocoBase sẽ ưu tiên sử dụng khóa chính làm mã nhận diện duy nhất của bản ghi.

Nếu kết nối một chế độ xem, bảng không có khóa chính hoặc bảng có khóa chính kết hợp, bạn cần thiết lập 「Record unique key」 thủ công trong cấu hình bảng dữ liệu. Khi không có mã nhận diện duy nhất khả dụng, các khối trên trang có thể không thể xem, chỉnh sửa hoặc xóa bản ghi chính xác.

20260709205547 20260709205609