5

Tôi có một kịch bản mà tôi cần gán một số Mục cho Khách.Thiết kế cơ sở dữ liệu để lưu trữ và đánh giá biểu thức quy tắc

GuestTable has columns like 
1. Guest ID 
2. GuestType 
3. Age 
4. Height 
5. Gender 

ItemTable has columns like 
1. ItemID 
2. Item Name 

Mỗi mục được bán cho khách dựa vào khả năng mục cũng như các thuộc tính của khách ví dụ: Nhóm tuổi hoặc phạm vi Chiều cao, vv

ví dụ. Một mặt hàng có sẵn mỗi thứ Hai và thứ Ba từ 2-4 giờ chiều và 6-8 giờ chiều cho khách Nam Spa cũng như Khách sạn có chiều cao lớn hơn 5 "và nhỏ hơn 5'5".

Vì số lượng điều kiện lọc lớn và có thể định cấu hình bởi người dùng cuối. Cũng như hệ thống phải đủ khả năng mở rộng để đáp ứng các tiêu chí lọc mới, Tôi nên quản lý các quy tắc này như thế nào. Có thể lưu trữ các quy tắc này dưới dạng biểu thức trong các bảng cơ sở dữ liệu không? Làm thế nào để mô hình hóa các bảng cơ sở dữ liệu cho kịch bản này?

HOẶC

Tôi có nên xem xét sử dụng một số công cụ quy tắc cho nó không?

+1

Có vẻ như bạn đang tạo trình tạo biểu thức của riêng mình, vì vậy bạn cần phải trình bày cho người dùng tất cả các cột có thể và danh sách toán tử (+, -, <, v.v.). Tôi nghi ngờ bạn sẽ cần phải chuyển đổi nó thành một điều kiện WHERE hợp lệ, lưu trữ nó dưới dạng văn bản và sử dụng SQL động để tạo truy vấn cuối cùng. Ngoài ra, bạn có thể tạo báo cáo SSRS với nhiều thông số để hiển thị báo cáo các mục hợp lệ. Chỉ có một bình luận bởi vì tôi hy vọng ai đó có một gợi ý tốt hơn. –

+1

Nếu không có một thiết kế cho cách bạn sẽ áp dụng các quy tắc thì làm thế nào bạn mong đợi để có được một câu trả lời cho cách lưu trữ các quy tắc. Quy tắc có cụ thể cho một mục không? Thực sự bạn có một món đồ bạn sẽ không bán cho khách trên 5'5? Làm thế nào về hàng tồn kho? Không thể bán một mặt hàng bạn không có trong kho. Quá nhiều là mất tích. – Paparazzi

+0

@Blam - giày có gót gấp? – APC

Trả lời

1

Như APC viết trong nhận xét, quyết định xem có nên sử dụng công cụ quy tắc nghiệp vụ không phải là điều bạn nên tin tưởng vào một nhóm người lạ trên internet.

Tuy nhiên ... kịch bản của bạn tương đối đơn giản và bị ràng buộc. Nó dường như là một bước duy nhất, chứ không phải là quy trình làm việc - "nếu khách hàng đáp ứng tiêu chí x, sản phẩm chào hàng y", thay vì "tất cả khách hàng khớp với tiêu chí x phải được người quản lý phê duyệt". Nó dường như bị ràng buộc chỉ với cơ sở dữ liệu - không gọi các dịch vụ web để quyết định xem một sản phẩm có phù hợp hay không.

Trên cơ sở đó - không, đừng đi cho một công cụ quy tắc. Chúng là những cỗ máy phức tạp, lớn, chỉ trả tiền cho chúng trong những vấn đề lớn hơn nhiều so với những gì bạn mô tả.

Tôi khuyên bạn nên sử dụng thư viện .Net "bằng ví dụ" để cho phép người dùng của bạn tạo điều kiện lọc; có một số tùy chọn thương mại, chẳng hạn như EasyQuery.

+0

Cảm ơn, "truy vấn bằng ví dụ", bạn có thể đặt tên một vài? –

+0

Tôi chỉ tìm thấy một - có sử dụng được một từ Telerik, và Crystal đã có một cái gì đó quá, nhưng không thể tìm thấy các liên kết ... –

1

Bạn nên suy nghĩ về việc sử dụng một cái gì đó như Flee và tránh sử dụng cơ sở dữ liệu làm công cụ quy tắc. Phân tích cú pháp phía khách hàng sẽ nhanh hơn nhiều và sẽ không tải quá nhiều vào máy chủ cơ sở dữ liệu của bạn. Chỉ cần đọc các giá trị và sau đó phân tích biểu thức bằng cách sử dụng Flee. Nó là một công cụ đánh giá tuyệt vời. Hãy thử và cho chúng tôi biết suy nghĩ của bạn.

Các vấn đề liên quan