머리말 : 나는 규칙 엔진, 건물 규칙, 모델링 규칙, 규칙을위한 데이터 구조 구현 또는 기타 등등에 대한 경험이 없다. 따라서, 나는 내가하고있는 일이나 내가 아래에서 시도한 것이 기초를 벗어난 방법인지 모릅니다.논리 규칙을 저장할 적절한 데이터 구조 및 데이터베이스 스키마는 무엇입니까?
나는 다음 가상 시나리오를 저장하고 처리하는 방법을 알아 내려고하고 있습니다. 내 문제를 단순화하려면 사용자가 가능한 물건을 1000 개가 될 수있는 물건을 구매하는 게임 유형이 있고 물건을 특정 순서대로 그리고 특정 그룹에서만 구매해야한다고 말한다. 예를 들어, 내가 사용자이고 F 객체를 구매하려고합니다. F 객체를 구입하려면 먼저 A 객체 (B AND C)를 구입해야합니다. 나는 F와 A를 동시에 살 수 없으며 F와 B, C도 살 수 없다. 규칙에 지정된 순서대로 있어야합니다. 첫째, F 다음. 또는 B, C를 먼저 누른 다음 F를 누릅니다. 나는 지금 구매에 걸리는 시간의 범위 나 사용자의 다른 특성에 대해서는 관심이 없다. 지금은 올바른 순서에 불과하다.
구매할 개체에 대한 규칙을 읽고 사용자의 이전 구매 내역과 비교할 수있는 수천 개의 개체에 대해이 정보를 저장하는 가장 좋은 방법은 무엇입니까?
나는 이것을 시도했지만 A OR (B AND C)과 같은 그룹을 구현하려고 노력 중이다.
Objects
(ID(int),Description(char))
ObjectPurchRules
(ObjectID(int),ReqirementObjectID(int),OperatorRule(char),Sequence(int))
그러나 당신이 결과를 통해 처리로 분명히 그룹화하지 않고, 잘못된 답변을 얻을 : 나는 이러한 테이블이 곳 데이터베이스에 규칙을 저장하고 싶습니다. 가능한 경우 과도한 문자열 구문 분석을 피하고 싶습니다. :) 하나의 객체는 이전에 요구 된 구매 횟수를 알 수 없습니다. SQL 또는 psuedocode 스 니펫이 규칙 처리에 도움이 될 것입니다. :)