2016-09-20 7 views
0

テーブルAにSQLの行と列の束があります。コード内の各行にアクセスすると、trueまたはfalseに評価されます。ロジックゲートデータを格納するためのテーブル構造を定義する方法は?

表Aの行に関連し、論理回路を定義する別の表Bを作成したいとします。

ですから、例えば、私はこれらの行

1 - true 
2 - true 
3 - false 
4 - true 

とテーブルAを持っていると私はこのような数行の間の関係を定義したい場合: "(2,3)" または「(2 AND(3 OR 4))」を入力してテーブルに保存し、後でこのデータを評価することができます。どうすればこれを達成できますか?私はこの場合、この

id | firstValue | secondValue | operator 

ような構造を考えていた

各値も表Bの行は、より複雑な回路を作成することができました。しかし、それぞれの値にどのテーブルを結合するのか、どうすればわかりますか?私が参加しているテーブルを定義する別のフィールドが必要でしょうか?

おそらくもっと良い解決策がありますか?

ありがとうございました。

+3

あなたがここで何をしようとしているのかはまったく明確ではありません。数式をデータとして保存してから、それらの数式を実行するように思えますか?これは動的SQLを必要とし、簡単な作業にはなりません。おそらく、あなたがしようとしていることをもっと明確に説明できるなら、私たちはもっと助けることができます。 –

+0

特定の機能がいつ有効になるかをユーザーが定義できるようにしたい。彼は、パラメータを定義するブロック(テーブルAの行)の束を持っています。その後、DBに保存されているAND/OR/XOR/etc回路にこれらのブロックを配置することができます。それから私は何かがアクティブかどうかを判断するためにユーザーが作成したこのロジックにアクセスします。それは絵を描くのだろうか? – Algirdyz

+0

ユーザーはどのようにデータベースと対話しますか?アプリケーションを介して、または直接SQLコマンドを発行する? –

答えて

0

私はあなたがこれをコーディングを考えているのか分からないが、ここで私が開始するとTableBのための構造です:

CircuitID  TableARowID  Position 

+ Positionは、主キーになります。したがって、各回路を構築するには、Position(つまり、位置1が最初に評価され、次に位置2が評価されます)の順番で評価されます。

これにより、任意の回路に関連付けられた表Aの任意の数の「ブロック」を持つことができます。

関連する問題