1
tl; dr:需要在第二個表中存儲一個表的ID數組,但我能找到的都是凌亂的解決方案。替代在SQL數據庫中存儲ID列表
我有一個測驗系統我設計(基於上面的答案this問題)以下數據庫表:
Quizzes
-quiz_name TEXT PRIMARY KEY NOT NULL
Questions
-id INTEGER PRIMARY KEY AUTOINCREMENT
-quiz_name TEXT REFERENCES Quizzes(quiz_name)
-prompt TEXT NOT NULL
-difficulty TEXT NOT NULL
Answers
-id INTEGER PRIMARY KEY AUTOINCREMENT
-quiz_name TEXT REFERENCES Quizzes(quiz_name)
-prompt TEXT NOT NULL
-value INTEGER NOT NULL
Quiz_Results
-id INTEGER PRIMARY KEY AUTOINCREMENT
-quiz_name TEXT REFERENCES Quizzes(quiz_name)
-num_correct INTEGER NOT NULL
-time TEXT NOT NULL
我想有一個表Question_Order看起來像這樣:
Question_Order
-quiz_name TEXT REFERENCES Quizzes(quiz_name)
-???some way of storing the IDs of all questions for this quiz
我的第一個直覺就是將ID轉換成一個以逗號分隔的字符串,並將其放入Question_Order中,但這似乎是一個破解良好RDBMS實踐的破解解決方案。 This問題和this詢問有關存儲ID列表。但是將問題放在單獨的表格中(而不是將其全部放在測驗表中)是因爲它們可以重複使用,所以我無法在問題中添加「訂單」列。我也可以爲每個測驗創建一個新表(例如「First_Quiz_Order」),但這也很麻煩。 如果它很重要,我正在使用SQLite。
德哦 - 我絕對應該在問題的事情上抓住了quiz_name ... – Prime 2014-09-24 00:47:43
肯定讚賞和避免逗號分隔字符串陷阱。 – 2014-09-24 01:01:47