2016-09-20 47 views
0

我有一堆行和列在sql中的表A.當訪問代碼中的每一行時,它被評估爲真或假。如何定義用於存儲邏輯門數據的表結構?

我想創建另一個表B,它涉及表A中的行並定義了一個邏輯電路。

因此,舉例來說,如果我有這些行

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

表A和我要定義這樣幾行之間的關係: 「(2,3)」 或「(2 AND(3或4))「並將其保存在表格中,以便稍後可以在代碼中評估此數據。我將如何實現這一目標?

我喜歡這個

id | firstValue | secondValue | operator 

思想的結構。在這種情況下,每個值也可以是在表B中的行以產生更復雜的電路。但是,我怎麼知道哪個表加入每個值?我是否需要另一個字段來定義我要加入的表格?

也許有更好的解決方案?

謝謝。

+3

你在這裏試圖做什麼並不完全清楚。這聽起來像你想存儲公式作爲數據,然後執行這些公式?這需要動態的sql,並不是一件容易的事情。也許如果你能更清楚地解釋你正在做什麼,我們可以提供更多幫助。 –

+0

我想允許用戶定義何時激活某個功能。他會有一堆塊(表A中的行)來定義參數。然後,他可以將這些塊安排在保存在DB中的AND/OR/XOR/etc電路中。然後,我將訪問用戶創建的這個邏輯來確定是否有活動。這是否畫一幅畫? – Algirdyz

+0

用戶如何與數據庫交互?通過應用程序,或直接發佈SQL命令? –

回答

0

我不知道你怎麼想的編碼這一點,但這裏是我將開始與表B的結構:

CircuitID  TableARowID  Position 

+ Position將是主鍵。因此,要構建每個電路,您需按照Position的順序評估與其關聯的每個表格A行(即:先評估位置1,然後再評估位置2等)。

這允許您將表A的任何數量的「塊」與任何給定電路相關聯。