2010-06-14 8 views
7

Đây là những gì tôi muốn làm.Sử dụng chuyên gia ống dẫn nước có bảng quyết định động

Tôi đã đặt "quy tắc" trong bảng cơ sở dữ liệu. Điều này giống như định dạng bảng quyết định xls, ngoại trừ tất cả các quy tắc sẽ là các hàng trong bảng. Bằng cách này tôi có thể sửa đổi các quy tắc một cách dễ dàng. Tôi cần phải đặt nó trong một cái bàn và không phải là một xls vì các quy tắc của tôi có thể thay đổi thường xuyên. Điều này có thể với những giọt nước dãi không? Tôi có thể xây dựng kiến ​​thức với các quy tắc được lấy từ DB (thay vì tập tin DRL hay xls) và mỗi lần thay đổi quy tắc, tôi có thể xây dựng lại cơ sở kiến ​​thức từ đầu (hoặc có thể chỉ là một phần của kiến ​​thức cơ bản). ..)

Trả lời

6

Nó phụ thuộc vào loại quy tắc bạn có trong tâm trí. Cách tiếp cận dựa trên cơ sở dữ liệu có ý nghĩa nếu bạn có nhiều quy tắc có cấu trúc giống nhau và chỉ thay đổi theo một số tham số nhất định. Trong trường hợp này, bạn có thể viết một quy tắc chung chung và sử dụng cơ sở dữ liệu để lưu trữ tất cả các kết hợp áp dụng. Ví dụ: giả sử bạn có quy tắc để tính toán mức phí giao hàng cho mỗi quốc gia, cho một đơn đặt hàng, ví dụ:

rule "Shipping rates to France" 
when 
    $order : Order(country == 'fr') 
then 
    $order.setShippingRate(10.0); 
    update(order); 
end 

// Similar rules for other countries… 

Bạn có thể thay thế các dữ liệu quy tắc này từ cơ sở dữ liệu của mình trong đó mỗi CountryShippingRate chỉ định tỷ lệ cho một quốc gia. Sau đó, bạn chèn tất cả các CountryShippingRate hàng như các đối tượng thực tế trong phiên cai trị, và một quy tắc duy nhất, như:

rule "Shipping rates" 
when 
    $order : Order($country : country) 
    CountryShippingRate($rate : rate, country == $country) 
then 
    $order.setShippingRate($rate); 
    update(order); 
end 

Trong thực tế, nó chỉ ra rằng rất nhiều quy tắc loại bảng quyết định có thể được viết lại theo cách này.

+1

Tôi ước tôi có thể upvote 10 lần :) –

+0

@Peter Hilton Hãy nhìn vào câu hỏi này. Cảm ơn http://stackoverflow.com/questions/26322576/stop-rules-on-update-facts-drools – Kumar