- ChartDB là trình chỉnh sửa sơ đồ DB giúp nhanh chóng trực quan hóa schema cơ sở dữ liệu và xử lý dưới dạng sơ đồ ER, tập trung vào cộng tác nhóm và các tác vụ migration schema
- Bản Cloud hoạt động trên trình duyệt và nhấn mạnh rằng có thể có sơ đồ trong vòng 15 giây mà không cần truy cập cơ sở dữ liệu
- Bản Self-Hosted được cung cấp dưới dạng mã nguồn mở miễn phí, phù hợp với nhu cầu bảo mật và tùy chỉnh khi cần tự kiểm soát dữ liệu và cấu hình
- Hỗ trợ nhập schema dựa trên một truy vấn duy nhất, tạo sơ đồ ER bằng AI, xuất SQL DDL, tự động đồng bộ, cộng tác thời gian thực, tài liệu nhúng và theo dõi thay đổi
- Có thể dùng cho thiết kế trên nhiều RDBMS và kho dữ liệu đám mây như PostgreSQL, MySQL, SQL Server, SQLite, MariaDB, ClickHouse, CockroachDB, Oracle, Snowflake, BigQuery
Sơ đồ schema DB xử lý ngay trên trình duyệt
- ChartDB là công cụ trực quan hóa tức thì schema cơ sở dữ liệu và tạo sơ đồ ER
- Được giới thiệu là trình chỉnh sửa sơ đồ DB dùng cho cộng tác nhóm và migration schema
- Nút bắt đầu dẫn đến ứng dụng ChartDB, kèm thông điệp bắt đầu miễn phí và không cần thẻ tín dụng
- Trên GitHub, ChartDB được hiển thị với +19K stars
Lựa chọn Cloud và Self-Hosted
- ChartDB Cloud là cách trực quan hóa cơ sở dữ liệu trên trình duyệt
- Được giới thiệu là phù hợp với tính dễ sử dụng và khả năng truy cập của nhóm
- Hiển thị rằng có thể sử dụng mà không cần truy cập cơ sở dữ liệu
- Nhấn mạnh có thể có sơ đồ trong vòng 15 giây
- Self-Hosted là trình chỉnh sửa thiết kế cơ sở dữ liệu mã nguồn mở miễn phí
- Có thể kiểm soát hoàn toàn dữ liệu và cấu hình
- Là lựa chọn phù hợp cho môi trường cần bảo mật và tùy chỉnh
- ChartDB mô tả rằng có thể trực quan hóa DB bằng “một truy vấn duy nhất”
Quy trình làm việc Import → Edit → Export
-
Instant Import
- Cung cấp một truy vấn duy nhất để nhập toàn bộ schema cho từng cơ sở dữ liệu
- Hướng dẫn rằng có thể nhập schema trong vòng 15 giây
-
Relational DBMS
- Nêu MySQL, MariaDB, PostgreSQL, Microsoft SQL Server, SQLite là các DBMS phổ biến và hiển thị là đối tượng được hỗ trợ
-
Export SQL
- Có thể tải sơ đồ xuống dưới dạng script SQL DDL để chạy trên cơ sở dữ liệu
- Cũng có thể xuất thành hình ảnh để đưa vào tài liệu
-
Examples
- Cung cấp ví dụ được thiết kế sẵn để thiết lập nhanh và tham khảo thiết kế
- Mục này được hiển thị là WIP
-
Advanced Query Editor
- Cung cấp các chức năng hoàn tác, làm lại, sao chép, dán và nhân bản
- Có thể thêm bảng, vùng chủ đề và ghi chú
-
Beautiful Shares
- Có thể tạo bản xem trước trực quan của sơ đồ cơ sở dữ liệu để chia sẻ với người khác
Tính năng tạo, chia sẻ và đồng bộ sơ đồ
- ChartDB - AI Agent
- Chuyển đổi ý tưởng cơ sở dữ liệu nhập vào prompt thành sơ đồ ER tối ưu có thể chỉnh sửa
- Instant Import
- Tính năng nhập toàn bộ schema DB bằng một truy vấn duy nhất
- Export SQL
- Tạo script DDL theo SQL dialect mong muốn
- Sync Database
- Tự động đồng bộ cơ sở dữ liệu live với sơ đồ
- Real time collaboration
- Có thể mời thành viên nhóm xem và chỉnh sửa sơ đồ theo thời gian thực
- Amazing Docs
- Tạo sơ đồ có thể nhúng và tài liệu mở rộng có thể tùy chỉnh
- Keep on track
- Theo dõi diff và lịch sử phiên bản của các thay đổi schema
Cơ sở dữ liệu được hỗ trợ
- ChartDB cho biết hỗ trợ thiết kế cho cơ sở dữ liệu và kho dữ liệu đám mây
- Các mục được hiển thị là được hỗ trợ như sau
- PostgreSQL
- MySQL
- SQL Server
- SQLite
- MariaDB
- ClickHouse
- CockroachDB
- Oracle
- Snowflake
- BigQuery
Các câu hỏi vận hành có thể kiểm tra trong FAQ
- Có câu hỏi về việc ChartDB có sửa đổi cơ sở dữ liệu hay không
- Có mục hỏi liệu có thể nhúng ERD live vào Notion, Miro, Confluence hay không
- Có mục xác nhận liệu có thể dùng thử miễn phí gói ChartDB Cloud hay không
- Cách nhận hỗ trợ, cách đồng bộ sơ đồ với cơ sở dữ liệu, cũng như việc có cung cấp hóa đơn và thanh toán doanh nghiệp hay không cũng được đưa vào các mục FAQ
1 bình luận
Ý kiến trên Hacker News
Tôi thường thấy các nhóm dự án lao vào phát triển ứng dụng mới mà không có một sơ đồ cơ bản nào để mô tả bất kỳ khía cạnh nào của giải pháp, kể cả mô hình dữ liệu
Không rõ cần gì để một sơ đồ ER đơn giản trở thành tiêu chuẩn trong tài liệu dự án. Công cụ liên quan thì rất nhiều, nhưng ngoài thực tế hầu như không được dùng
Có lẽ muốn mọi người dùng thì Microsoft phải đưa nó vào như một tính năng của Excel hoặc PowerPoint. Sơ đồ không cần hoàn hảo, chỉ cần truyền đạt được cấu trúc và các quan hệ cốt lõi phù hợp với ngữ cảnh. Nếu cần, có thể tạo nhiều sơ đồ nhỏ cho cùng một cơ sở dữ liệu để ghi lại yêu cầu và thiết kế
Ngoài ra UML gần như là một thảm họa. Từ sau thập niên 90, nó trở thành thứ đại diện cho ngôn ngữ sơ đồ, nhưng lại không có thành phần cơ sở dữ liệu, nên phải gò sơ đồ lớp để dùng như ERD. UML không phải là code, và việc lập trình bằng UML cũng khó hoặc gần như không thể. Với ERD thì việc chuyển qua lại giữa code và sơ đồ dễ hơn nhiều, nhưng với các kiểu lập trình khác thì không như vậy
Tôi cho rằng sự trỗi dậy rồi thất bại của UML đã góp phần lớn khiến lập trình viên không vẽ sơ đồ nữa. Hơn nữa, với đa số lập trình viên, công cụ duyệt code hiển thị cấu trúc code dạng cây ở panel bên trái của trình soạn thảo code là đã đủ
Trước đây tôi khá ủng hộ việc lập ERD, và thường dùng nó như bài tập onboarding ngay cả với các cơ sở dữ liệu có hơn 100 bảng. Nhưng ERD toàn diện đang ngày càng hiếm, và tôi nghĩ như vậy cũng ổn
Chi phí bảo trì cao nên giá trị không kéo dài. Có một ERD được trau chuốt kỹ thì tốt, nhưng không bắt buộc
Khi tạo ERD bằng code, các công cụ như dbdiagram.io hay eraser.io được dùng khá nhiều. ERWin có thể xem là ông tổ của các sơ đồ UML/ERD, nhưng đắt
Tôi tò mò vì sao mọi người dùng các công cụ kiểu này. Dùng để nói chuyện với quản lý à?
Tôi hỏi thật lòng. Có lẽ tôi cũng nên dùng, nhưng vẫn chưa hiểu vì sao cần
Cũng cần khi có nhiều mô hình ở các hệ thống khác nhau, hoặc khi làm việc với người khác và muốn giao tiếp về mô hình cơ sở dữ liệu dễ hơn, hoặc cần giải thích công khai, hoặc muốn lên kế hoạch mô hình trước
Ở đây nói nên dùng là nói đến sơ đồ cuối cùng, chứ không nhất thiết là công cụ cụ thể này
https://dbml.dbdiagram.io/home/
Nếu từng tiếp nhận một dự án có 80 bảng mà không có tài liệu, hoặc may lắm chỉ có một tài liệu 50 trang chứa dump schema cơ sở dữ liệu, bạn sẽ hiểu
Có thể vẽ các bảng và quan hệ cốt lõi trong một ERD (sơ đồ thực thể–quan hệ) duy nhất, và hiểu được trong vài phút thay vì mất hàng giờ hay hàng ngày như với dump schema
Ở giai đoạn thiết kế schema, có thể dùng nhiều trình chỉnh sửa ERD hoặc các công cụ sơ đồ dựa trên văn bản như PlantUML, MermaidJS, DBML, và cũng có thể đưa nguồn của sơ đồ vào quản lý mã nguồn
Ngoài ra, nếu CI tạo ERD chi tiết cho schema cơ sở dữ liệu hiện tại để xem xét định kỳ, ta có thể kiểm tra xem nó có khớp với thiết kế ban đầu không, và liệu mình có đang hiểu đúng schema hiện tại không
Tôi thật sự ghét thái độ “code tự giải thích rồi mà!”
Tôi thấy có nhiều dịch vụ tương tự. Nhưng thứ tôi tìm là một công cụ có thể tự dùng trực tiếp hoặc điều khiển bằng script
Trường hợp sử dụng của tôi là tạo sơ đồ cơ sở dữ liệu tương đối đơn giản từ mô tả mô hình mà tôi có như một phần của quy trình khác. Trong cấu trúc bộ nhớ có tên bảng, tên cột, quan hệ, và tôi muốn vẽ một sơ đồ kiểu ER
Hiện tại tôi đang xem cách tạo file
pumltừ dữ liệu của mình rồi chạy PlantUML để tạopnghoặcsvgTìm thử thì đa số là công cụ thiết kế cơ sở dữ liệu hoàn chỉnh có trình chỉnh sửa riêng nhưng không có API, còn các công cụ như cái này hay dbdiagram.io thường chỉ dùng online nên không phải lựa chọn cho tôi. Nếu có gợi ý thì tôi rất biết ơn
Ước gì thứ này đã có khi tôi bắt đầu dự án 5 năm trước. Tôi phải thiết kế schema cơ sở dữ liệu cho một dự án full-stack dùng Postgres, và làm việc cùng một chuyên gia trong lĩnh vực khoa học
Việc cùng xem lại sơ đồ rất hữu ích, vì chuyên gia đó có thể phát hiện các vấn đề do những yêu cầu đặc thù miền có thể phát sinh trong tương lai
Trong quá trình đó tôi có rất nhiều buổi họp 1:1, vừa nhìn sơ đồ vừa ghi lại những gì cần thay đổi trước buổi họp tiếp theo
Nếu có công cụ như thế này, chúng tôi đã có thể chỉnh sửa ngay trong cuộc họp và giảm được rất nhiều vòng lặp. Cũng có những thứ như pgAdmin, nhưng trông không thân thiện với người không chuyên kỹ thuật; công cụ này có vẻ có thể giảm bớt ma sát
Hay đấy, nhưng vấn đề chính của các công cụ kiểu này là chúng một chiều và cố tự biến mình thành nguồn thẩm quyền trung tâm. Nhưng đây là hình vẽ, không phải cơ sở dữ liệu
Tôi hiểu vì sao mọi người dùng, nhưng tôi không cần công cụ như vậy
Vì thế mọi công cụ đều cung cấp “xuất ra SQL” rồi kỳ vọng mọi thay đổi trong cơ sở dữ liệu được phản ánh vào sơ đồ. Nhưng sơ đồ không phải là cơ sở dữ liệu, nên giờ công việc bị nhân đôi
Sơ đồ là mô hình, và mô hình luôn tồn tại, dù được thể hiện rõ ràng hay chỉ nằm trong đầu
Mô hình trong đầu có thể sai, nhưng không ai nhìn thấy nên không thể chỉ ra lỗi. Kể cả chính bản thân mình
DBeaver cũng hỗ trợ ERD: https://dbeaver.com/docs/dbeaver/ER-Diagrams/
Nó có tính tương tác và có thể chỉnh sửa. Khó gọi là “đẹp”, nhưng toàn bộ sản phẩm là FOSS và cực kỳ hữu ích cho công việc với cơ sở dữ liệu
Nhưng với một số người tôi từng làm việc cùng thì không. Thường khi cần những thứ này là lúc cộng tác thiết kế với những người không quen SQL nhưng có kiến thức miền, và họ mang đến các bảng tính Excel gần bằng một cơ sở dữ liệu nhỏ
Không hiểu sao một landing page tĩnh mà cuộn lại giật đến vậy