2010-08-02 142 views
1

是否有可能以某種方式在兩個表之間執行多對一的一對多關係? 喜歡:SQL - 多個一對多關係

表ABC

  • abcID
  • defID
  • 消息

表DEF

  • defID
  • abcID
  • 消息

如果是的話我怎麼能然後進行與實體框架的新ABC入門?

+0

此架構如何表示多個一對多關係? – 2010-08-02 23:18:22

+0

[abc] abcID - > [def] abcID ||||| [def] defID - > [abc] defID – ebb 2010-08-02 23:20:03

+0

@Will A:我認爲OP在多對多關係之後 - 來自'abc'的一條記錄可能與許多'def'記錄有關,反之亦然。 – 2010-08-02 23:20:24

回答

2

你只需要一個單一的多關係。只需將QuestionId出quiz_answers表和移動AnswerId出quiz_questions表:

Create Table quiz_questions 
(
QuestionId ... Not Null Primary Key 
, Question ... 
, ... 
) 

Create Table quiz_answers 
(
AnswerId ... Not Null Primary Key 
, Answer ... 
, ... 
) 

Create Table quiz_question_answers 
(
QuestionId ... Not Null References quiz_questions (QuestionId) 
, AnswerId ... Not Null References quiz_answers (AnswerId) 
, Constraint PK_quiz_question_answers Primary Key (QuestionId, AnswerId) 
) 
+0

我如何知道AnswerId 7屬於QuestionId 2呢? – ebb 2010-08-02 23:53:53

+0

@ user407674 - 因爲你將在quiz_question_answers表中將QuestionId 2映射到AnswerId 7中。你可能會尋求兩個Many-Many關係:一個映射* available *問題的答案,另一個映射* actual *的答案需要另一個人選擇答案的人。 – Thomas 2010-08-03 00:21:25

+0

啊,我明白了......完美 - 謝謝! – ebb 2010-08-03 00:27:01

0

是的,這是一個對一個從ABC加盟DEF,然後另一個從DEF回到ABC;所以abc加入defID def def和def加入abc abcID。