例如,我们有一个网站。我们已经将调查添加到我们的站点。 用户将在我们的网站上参与调查。
我们有一个如下数据库。 有3个表格,分别是用户,调查和SurveyParticipation。
users
->userID (int)
->username (varchar(45))
->password (varchar(45))
->email (varchar(45))
->firstname (varchar(45))
->lastname (varchar(45))
surveys
->surveyNumber (int)
->questionNumber (int)
->question (varchar(500))
surveyParticipation
->surveyNumber (from the surveys table)
->userID (from the users table)
我只想使用mysql(phpmyadmin)进行以下操作,而不使用任何编程语言;
1-)一个成员可以参加一个以上的调查表(但每个成员只能参与一次调查)
例如;
调查参与表
surveyNumber:1 userID: 1
surveyNumber:1 userID: 2
surveyNumber:1 userID: 3
surveyNumber:1 userID: 4
surveyNumber:1 userID: 5
surveyNumber:1 userID: 6
surveyNumber:1 userID: 7
surveyNumber:2 userID: 1
surveyNumber:2 userID: 2
surveyNumber:2 userID: 3
surveyNumber:2 userID: 4
surveyNumber:2 userID: 1 (This user has joined more than once! How do I prevent it)
你能帮助我解决我的问题吗?
答案 0 :(得分:0)
在surveynumber
中的userid
和surveyparticipation
上添加唯一约束。
ALTER TABLE surveyparticipation
ADD UNIQUE (surveynumber,
userid);
或者,由于该表显然没有,但应该有一个,因此使其成为主键。
ALTER TABLE surveyparticipation
ADD PRIMARY KEY (surveynumber,
userid);
主键也必须是唯一的,因此也可以使用。而且,在surveynumber
或userid
中,null似乎都没有意义,因此随之而来的隐式not null约束也没有害处。