Giới thiệu về NocoDB
Lời mở đầu
Đối với dân lập trình viên thì cơ sở dữ liệu là một phần quan trọng trong công việc. Tùy theo các kiểu dữ liệu và số lượng bản ghi mà tôi sẽ chọn sử dụng cơ sở dữ liệu phù hợp nhất. Thường thì là postgres, redis, ... Bình thường thì dân lập trình như chúng ta sẽ không cảm thấy khó khăn gì trong việc kết nối và sử dụng các package này, nhưng với những người không chuyên code thì ngược lại vì cái dashboard UI của các công cụ này xấu hoắc và khó sử dụng. Vì vậy có đợt tôi thử tìm hiểu xem có công cụ nào hỗ trợ cho người "no code" hay không thì tìm được NocoDB.
Well, trước khi đi sâu vào việc sử dụng thì tôi sẽ giới thiệu sơ lược qua về NocoDB bằng ... ChatGPT 😀 :
- NocoDB là một nền tảng cơ sở dữ liệu không cần mã hóa, cho phép các nhóm cộng tác và xây dựng ứng dụng một cách dễ dàng thông qua giao diện bảng tính quen thuộc và trực quan.
- NocoDB hoạt động bằng cách kết nối với bất kỳ cơ sở dữ liệu quan hệ nào và chuyển đổi chúng thành giao diện bảng tính thông minh! Điều này cho phép bạn xây dựng các ứng dụng không cần mã hóa cùng với các nhóm làm việc. Hiện tại, NocoDB hỗ trợ các cơ sở dữ liệu MySQL, PostgreSQL và SQLite (chỉ có trong mã nguồn mở).
- Ngoài ra, cửa hàng ứng dụng của NocoDB cho phép bạn xây dựng quy trình làm việc cho doanh nghiệp trên các bảng nhìn, kết hợp với Slack, Microsoft Teams, Discord, Twilio, Whatsapp, Email và các API bên thứ ba khác. Hơn nữa, NocoDB cung cấp quyền truy cập lập trình vào các API, giúp bạn dễ dàng tạo tích hợp với Zapier, Integromat và các ứng dụng tùy chỉnh.
Một số ứng dụng của NocoDB:
- Các thao tác cơ bản: Tạo, Đọc, Cập nhật và Xóa trên Bảng, Trường và Bản ghi
- Các thao tác với Trường: Sắp xếp, Lọc, Ẩn / Hiện các Trường
- Nhiều loại chế độ xem: Dạng Lưới (mặc định), Thư viện, Biểu mẫu và Kanban
- Các loại quyền xem: Chế độ xem Cộng tác & Chế độ xem Khóa
- Chia sẻ Cơ sở dữ liệu / Chế độ xem: công khai hoặc riêng tư (bảo vệ bằng mật khẩu)
- Nhiều loại ô dữ liệu: ID, Liên kết, Tra cứu, Tổng hợp, Văn bản dòng đơn, Tệp đính kèm, Tiền tệ, Công thức, v.v.
- Kiểm soát truy cập với Vai trò: Kiểm soát truy cập chi tiết ở nhiều cấp độ khác nhau
Cài đặt
Self Hosted (Tự cài đặt công cụ trên server)
Auto-Upstall
- Server: Linux-based system - Ubuntu, Debian, CentOS
- Điền vào terminal lệnh này
bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp)
- Sau khi cài đặt xong NocoDB sẽ yêu cầu bạn điền địa chỉ ip/domain cho NocoDB instance. Mặc định là địa chỉ ip của máy bạn
- Tùy chọn nâng cao:
- Chọn giữa phiên bản cộng đồng (CE) hoặc phiên bản doanh nghiệp (EE)
- Nhập khóa giấy phép (đối với EE)
- Bật/tắt Redis để lưu trữ bộ nhớ đệm
- Bật/tắt Minio để lưu trữ tệp
- Cấu hình tên miền và SSL cho Minio
- Bật/tắt Watchtower để tự động cập nhật
- Thiết lập số lượng phiên bản NocoDB cần chạy
Okay, sau khi đã cài đặt xong nocodb, bạn có thể truy cập dashboard ui http://<địa chỉ ip/domain của bạn>
trên trình duyệt. Giống với trang admin của Django, bạn cần đăng ký email/password (fake cũng được).
Nếu nhìn thấy hình trên thì xin chúc mừng bạn đã cài đặt thành công NocoDB !!!
Docker
- SQLite
docker run -d --name nocodb \
-v "$(pwd)"/nocodb:/usr/app/data/ \
-p 8080:8080 \
nocodb/nocodb:latest
- Postgres
docker run -d --name nocodb-postgres \
-v "$(pwd)"/nocodb:/usr/app/data/ \
-p 8080:8080 \
-e NC_DB="pg://host.docker.internal:5432?u=root&p=password&d=d1" \
-e NC_AUTH_JWT_SECRET="569a1821-0a93-45e8-87ab-eb857f20a010" \
nocodb/nocodb:latest
Cloud Hosted
Trong trường hợp bạn không có server, bạn có thể trải nghiệm trên cloud của NocoDB
- Truy cập trang web NocoDB. (https://www.nocodb.com/)
- Nhấp vào nút "Start for Free" nằm ở góc trên bên phải.
- Đăng ký bằng tài khoản Google. Ngoài ra, bạn cũng có thể đăng ký bằng địa chỉ email của mình.
- Kiểm tra email để nhận liên kết xác minh và làm theo hướng dẫn để xác minh tài khoản của bạn.
Thực hành
Tạo Base
Với các dự án khác nhau, bạn sẽ cần tạo cơ sở dữ liệu khác nhau. Vì vậy trước tiên, bạn cần tạo Base. Nhấn vào Create Base
.
Tạo Table
Điều đầu tiên khi làm việc với cơ sở dữ liệu cần phải tạo bảng. Bạn có thể tạo mới hoặc import từ json, csv, airtable, microsoft excel file.
Thêm Field
Trong mỗi bảng, bạn cần định nghĩa các trường sẽ chứa dữ liệu của bạn. Trường là các cột dữ liệu lưu trữ một loại dữ liệu cụ thể. Các trường có thể đại diện cho nhiều loại thông tin khác nhau như văn bản, số, ngày tháng, và nhiều hơn nữa.
Tạo Link (Relationship)
Trong cơ sở dữ liệu, bạn sẽ phải thường tạo mối quan hệ giữa các bảng. Cũng tương tự, NocoDB cung cấp một khái niệm gọi là Links
Không chỉ thế, NocoDB sẽ hỗ trợ các chức năng giúp việc quản lý mối quan hệ giữa các bảng trở nên dễ dàng hơn:
- Cell Display: hiển thị số lượng liên kết của một bản ghi đến bảng liên quan
- List linked records: danh sách các bản ghi được liên kết sẽ xuất hiện dưới dạng một menu thả xuống, chứa các bản ghi liên kết dưới dạng thẻ.
Còn vài chức năng khác, bạn có thể xem chi tiết trong link này: https://docs.nocodb.com/fields/field-types/links-based/links/
Thêm bản ghi
Sau khi tạo bảng rồi thì cũng phải thêm dữ liệu vào bảng. Mỗi một điểm dữ liệu gọi là bản ghi. Có 2 cách để thêm: bằng tay hoặc import từ CSV/Excel.
- Cách 1: Bằng tay
- Cách 2: Tải CSV/Excel
Tạo View
Chế độ này dùng để hiển thị dữ liệu. Các chế độ xem này bao gồm: Grid, Kanban, Gallery, Form, Calendar.
Kết nối với cơ sở dữ liệu có sẵn
Với dân lập trình như tôi thì cái quan trọng nhất của NocoDB là có hỗ trợ kết nối với các cơ sở dữ liệu có sẵn như postgres, slqlite, mysql, ... không ? Khá là may NocoDB có hỗ trợ.
Có một chức năng quan trọng trong mục này là chức năng Sync - đồng bộ dữ liệu giữa NocoDB và cơ sở dữ liệu có sẵn.
Còn vài chức năng khác, bạn có thể xem chi tiết trong link này: https://docs.nocodb.com/data-sources/data-source-overview/
Thêm thành viên + cấp quyền
Bạn có thể gán cho thành viên một trong các vai trò sau:
- Owner
- Creator
- Editor
- Commenter
- Viewer
- No Access
Webhook
Bạn có thể sử dụng webhooks để thông báo cho các hệ thống bên ngoài khi có thêm, cập nhật hoặc xóa bản ghi trong NocoDB. Tính năng này cho phép bạn nhận thông báo tức thì về bất kỳ thay đổi nào trong cơ sở dữ liệu của mình.
Các tùy chọn để tạo webhook
- Đặt tên webhook
- Lựa chon các sự kiện mà webhook có thể bị kích hoạt:
- On Record Insert
- On Record Update
- On Record Delete
- On Multiple Record Insert
- On Multiple Record Update
- On Multiple Record Delete
- Manual Trigger
- Method & URL: cấu hình điểm cuối (endpoint) mà webhook cần được kích hoạt. Các phương thức hỗ trợ bao gồm GET, POST, DELETE, PUT, HEAD, PATCH.
- Headers and Parameter: cấu hình tiêu đề yêu cầu và tham số (optional).
- Condition: chỉ những bản ghi đáp ứng điều kiện đề ra mới kích hoạt webhook (optional).
- Kiểm tra webhook: Thử nghiệm webhook với mẫu để kiểm tra xem các tham số có được cấu hình chính xác không (optional).
- Khởi tạo webhook.
Nếu các bạn muốn làm rõ format trả về của webhook có thể tham khảo qua link này: https://docs.nocodb.com/automation/webhook/create-webhook/
Lời kết
Cám ơn các bạn đã đọc đến đây.
NocoDB đơn giản là một platform dành cho người không phải dân lập trình nên cũng ít có code block. Tài liệu mà nhà phát triển cung cấp cũng rõ ràng và dễ hiểu. Well, cũng chả biết nói gì hơn, mong gặp lại các bạn trong một bài viblo khác 🫡
Tham khảo
All rights reserved