tôi sẽ cung cấp câu trả lời dựa trên tệp readme của trình xây dựng SQL tùy chỉnh của tôi ( Phương ngữ )
(văn bản đơn giản theo sau, loại bỏ các tham chiếu cụ thể của thư viện)
Yêu cầu
- Hỗ trợ nhiều nhà cung cấp DB (ví dụ: MySQL, PostgreSQL, SQLite, MS SQL / SQL Server, Oracle, DB2, ..)
- Dễ dàng mở rộng sang các DB mới (tốt nhất là thông qua cài đặt cấu hình, không phụ thuộc vào triển khai)
- Tính mô đun và khả năng chuyển giao độc lập
- API linh hoạt và trực quan
Đặc trưng
- mẫu dựa trên ngữ pháp
- hỗ trợ lượt xem mềm tùy chỉnh
- trừu tượng hóa db, mô đun hóa và khả năng chuyển nhượng
- chuẩn bị mẫu
- thoát dữ liệu
Tôi nghĩ rằng các tính năng và yêu cầu ở trên phác họa lý do người ta sẽ sử dụng trình xây dựng trừu tượng SQL
Hầu hết các tính năng trên được hỗ trợ bởi hầu hết các nhà xây dựng SQL (mặc dù tôi không nghĩ rằng tất cả các danh sách được hỗ trợ, theo hiểu biết của tôi)
Ví dụ về trường hợp sử dụng:
- Nền tảng CMS có thể hoạt động (không thay đổi mã cơ bản) với nhiều nhà cung cấp DB
- Mã ứng dụng tùy chỉnh trong đó nhà cung cấp DB có thể thay đổi và / hoặc các lược đồ dB là động (điều này có nghĩa là nhiều truy vấn không thể được mã hóa cứng nhưng vẫn cần được trừu tượng hóa đủ để mã mạnh mẽ thay đổi)
- Tạo mẫu với một DB khác với một DB được sử dụng trong sản xuất (sẽ yêu cầu cơ sở mã trùng lặp ít nhất là đối với một số mã)
- Mã ứng dụng không được kết hợp chặt chẽ với nhà cung cấp và / hoặc triển khai DB cụ thể (ngay cả trong cùng một nhà cung cấp DB, ví dụ: các phiên bản khác nhau của nhà cung cấp DB), do đó mạnh mẽ hơn, linh hoạt và mô đun hơn
- Nhiều trường hợp truy vấn và thoát dữ liệu thông thường được xử lý bởi chính khung công tác và thông thường, điều này vừa tối ưu vừa nhanh hơn
Cuối cùng, một ví dụ về trường hợp sử dụng tôi đã có. tôi đang xây dựng một ứng dụng trong đó lược đồ DB cơ bản (wordpress) không phù hợp với loại truy vấn dữ liệu cần thực hiện, cộng với một số bảng WP (ví dụ: bài đăng) phải được sử dụng (vì vậy phải có bảng hoàn toàn mới cho tất cả các dữ liệu ứng dụng không phải là một lựa chọn).
Trong trường hợp đó, việc có thể tạo ra một ứng dụng giống như MVC trong đó mô hình có thể được truy vấn bởi các điều kiện tùy chỉnh / động khiến truy vấn mã hóa cứng gần như là một cơn ác mộng. Hãy tưởng tượng bạn phải hỗ trợ truy vấn có thể lên tới 2-3 bảng với các phép nối và lọc các điều kiện để xem bảng nào sẽ tham gia với cái gì và cũng quan tâm đến các bí danh cần thiết, v.v.
Rõ ràng đây là trường hợp sử dụng trừu tượng hóa truy vấn và thậm chí nhiều hơn, nó cần (hoặc ít nhất được hưởng lợi rất nhiều) có khả năng xác định các chế độ xem mềm tùy chỉnh (tập hợp các bảng đã tham gia như thể chúng là một bảng tùy chỉnh phù hợp với mô hình) . Sau đó, nó đã dễ dàng hơn nhiều, sạch hơn, mô-đun và linh hoạt. Trong một khía cạnh khác, ứng dụng (mã) cũng sử dụng lớp trừu tượng truy vấn như một công cụ chuẩn hóa (lược đồ db) . Như một số người nói, đó là bằng chứng trong tương lai .
Nếu, ngày mai, mọi người quyết định họ cần một số tùy chọn hoặc dữ liệu bổ sung, rất dễ dàng để thêm nó vào mô hình trong một vài dòng và hoạt động tốt. Ngoài ra, nếu, tommorow, mọi người quyết định họ không muốn sử dụng wordpress nữa (vì ứng dụng được ghép lỏng lẻo với wordpress như một plugin), việc thay đổi ( chỉ định nghĩa ) các mô hình trong một vài dòng cũng tương đối dễ dàng. mã để thích ứng với lược đồ mới.
Hiểu ý tôi chứ?