![](/img/trans.png)
[英]Oracle SQL Transposing Only One column values as separate columns in the output
[英]Oracle SQL constrain 2 columns values only if certain values
我有3個表格的問題,答案和user_answers。 所有問題均在答案表中設置了相關答案,用戶答案與答案所針對的問題ID一起存儲在user_answer表中。
想象一個復選框類型的調查,其中一個問題帶有單選按鈕。
我想知道是否有可能將user_answers表限制為每個user_id僅允許該特定Question_id 1個答案,但允許所有其他問題多個答案。
我已經研究了解決方案,但找不到與我的特定用例匹配的任何東西。
任何幫助表示贊賞,謝謝!
您有三個表:
如果一個問題可能有多個答案,則答案中將有一個以上的答案(“檢查所有適用問題”類型),用戶可以檢查很多結果,從而導致對同一問題(QID,UID)的引用USER_ANSWERS中的其他AID。 如果允許一個選擇,則答案中將有多個答案,但用戶只能選擇一個,從而在USER_ANSWERS中僅引用了(QID,UID)。
我的建議如下:在數據庫級別強制
所以現在,您有了這樣的表結構:
示例數據:
問題:
QID,QTYPE
Q1,“ S”-單個答案
Q2,'M'-多個答案
答案:
AID,QID,AQ_REF
A1,Q1,Q1-請注意,對於所有Q1答案,它都有AQ_REF = Q1
A2,Q1,Q1
A3,Q1,Q1
A4,Q2,A4-注意這有AQ_REF = A4
A5,Q2,A5-注意這有AQ_REF = A5
A6,Q2,A6-注意這有AQ_REF = A6
USER_ANSWERS:
UAID,AID,AQ_REF,UID
UA1,A1,Q1,U1
UA2,A4,A4,U1
UA3,A6,A6,U1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.