Ho due tabelle come nell'istantanea sottostante.Come modificare questo rapporto molti a uno con uno a uno?
[Diagramma] [1]
Scenario: Una domanda deve avere una sola risposta corretta, ma può avere molti (3 nel mio caso) risposte sbagliate (come un quiz).
Problema:
Questions
tavolo ha più risposte nella tabella Answers
, ma solo uno risposta corretta. La risposta corretta è la AnswerID
nella tabella Questions
ed è correlata alla colonna AnswerID
nella tabella Answer
. Ma si presenta come una relazione Molti a Uno (vedere i campi in grassetto).
Ho applicato un vincolo UNIQUE a AnswerID nella tabella delle domande, ma mostra comunque una relazione molti a uno. Cosa posso fare in modo che ogni voce di colonna ID risposta sia collegata a un ID risposta singolo nella tabella delle domande? o è ok così com'è?
Grazie
DOMANDE TABELLA:
CREATE TABLE [dbo].[Questions](
[QuestionID] [int] NOT NULL,
[QuestionText] [nvarchar](max) NOT NULL,
[AnswerID] [int] UNIQUE NOT NULL,
[ImageLocation] [ntext] NULL,
CONSTRAINT [PK_Questions_1] PRIMARY KEY CLUSTERED
RISPOSTE TABELLA:
CREATE TABLE [dbo].[Answers](
[AnswerID] [int] NOT NULL,
[AnswerText] [nchar](50) NOT NULL,
[QuestionID] [int] NOT NULL,
CONSTRAINT [PK_Answers] PRIMARY KEY CLUSTERED
Perché non aggiungere semplicemente un flag (RigtAnswer) nella tabella delle risposte? Questo ti salverà dai controlli extra (la risposta giusta non è nella lista delle possibili risposte ...) –
Mostraci anche i tuoi script FOREING KEY. –
@MauricioGracia Ho aggiunto una schermata da studio di gestione SQL –