Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để mã hóa và lưu trữ các ràng buộc quyền động?

Chà, đây là một trong những lĩnh vực vẫn còn nhiều thảo luận. Như một số người nói [ai? - nghĩ rằng đó là Atwood giữa những người khác, nhưng một liên kết thoát khỏi tôi], một ứng dụng có thể làm mọi thứ đã được thực hiện; nó được gọi là C. Những gì bạn muốn làm gần như nằm trong khu vực 'quá chung chung', mặc dù tôi có thể thấy giá trị của việc không cần lập trình viên mỗi khi quy tắc kinh doanh thay đổi.

Nếu tôi phải triển khai một hệ thống như vậy, tôi đoán tôi sẽ thử và chia nhỏ nó thành các miền. Bạn đã hoàn thành công việc tương đối tốt với bảng thứ hai. Chỉ cần chuẩn hóa nó thành các miền riêng biệt được sử dụng để kết hợp các quy tắc kinh doanh. Bạn tạo quy tắc kinh doanh bao gồm 1 hoặc nhiều ràng buộc HOẶC kết hợp với nhau. Mỗi ràng buộc cần một thuộc tính bị hạn chế với một toán tử đối với một thuật ngữ. Các thuật ngữ có thể phức tạp, vì chúng có thể là bất cứ thứ gì từ thuộc tính đến hàm, đến hàm ghép. Có lẽ dễ nhất là kiểm tra các quy tắc kinh doanh của bạn để xem bạn cần gì. Bắt đầu với, chẳng hạn, thuộc tính, boolean và những thứ phổ biến như 'NOW'.

Vì vậy, ví dụ, bản thân lược đồ sẽ bao gồm các rules , chứa nhiều constraints (lợi ích rõ ràng là bạn có thể liên kết những thứ này với bất kỳ [nhóm người dùng / ưu đãi / khoảng thời gian / miền khác] nào mà bạn muốn). Đổi lại, chúng bao gồm các thuộc tính properties , sẽ so sánh với một trong các toán tử properties (hầu hết là bảng tham chiếu để bạn có thể nhập tên mô tả tùy chỉnh cho những người không phải là lập trình viên, nhưng bạn có thể chọn nhập một hàm tùy chỉnh trong đó vào một số thời điểm) và tất nhiên là một trong các terms . Phần cuối cùng là phần phức tạp nhất, vì vậy bạn có thể phải đủ điều kiện với một ID trong term_types để bạn biết liệu bạn đang so sánh với một thuộc tính hay một chức năng khác. Bạn cũng có thể chỉ cần VARCHAR nó và tạo trường bằng PHP, điều này không quá khó, với điều kiện bạn có tất cả các tùy chọn trong properties và / hoặc các hàm properties .

Đó là một hệ thống rất mở (và có lẽ có nhiều cách tốt hơn để sử dụng nó), vì vậy nó có thể không đáng làm trừ khi bạn biết rằng bạn sẽ cần mức độ năng động cao trong các quy tắc kinh doanh.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi:Cột không xác định '' trong 'danh sách trường' Lỗi MySQL

  2. Ý nghĩa của dấu chấm hỏi trong MySQL tại cột WHERE là gì =??

  3. Thêm nhiều dữ liệu với khoảng thời gian nhất định trong Java

  4. Làm cách nào để sử dụng xóa thác trong mysql?

  5. Làm cách nào để tìm nạp dữ liệu mysql theo thứ tự giảm dần?