【发布时间】:2019-02-19 17:56:18
【问题描述】:
我的任务是创建只有通过邀请某些人才能进行的调查。一个人可以参加一次调查。该调查仅适用于特定时间段。我正在尝试为这个未来的应用程序创建数据库结构。作为数据库,我使用 PostgreSQL。
据我了解,一项调查可能有很多问题。同时,一个问题可以在许多调查中重复使用。这是多对多的关系。
这就是我创建表来解决第一个任务的方式。如果我在某个地方遗漏或做错了,请纠正我。
QUESTIONS 表:
CREATE TABLE QUESTIONS(
ID SERIAL PRIMARY KEY,
TEXT TEXT NOT NULL
);
SURVEYS 表:
CREATE TABLE SURVEYS(
ID UUID PRIMARY KEY NOT NULL DEFAULT uuid_generate_v4(),
NAME VARCHAR NOT NULL,
DESCRIPTION TEXT,
START_PERIOD TIMESTAMP,
END_PERIOD TIMESTAMP
);
SURVEYS_QUESTIONS 表:
CREATE TABLE SURVEYS_QUESTIONS(
ID SERIAL,
SURVEY_ID UUID NOT NULL,
QUESTION_ID INT NOT NULL,
PRIMARY KEY (ID),
FOREIGN KEY (SURVEY_ID) REFERENCES SURVEYS (ID) ON DELETE CASCADE,
FOREIGN KEY (QUESTION_ID) REFERENCES QUESTIONS (ID) ON DELETE CASCADE
);
现在我不明白如何正确地将用户与调查联系起来,以及如何正确存储用户答案。
【问题讨论】:
标签: sql postgresql