объединение таблиц в поле зрения - PullRequest
1 голос
/ 12 августа 2011

Меня беспокоит, что я не нормализовал таблицы должным образом, поскольку теперь я не вижу возможности присоединиться к ним;

У меня есть 1 таблица с 2 столбцами, которая называется «Вопросы», и еще одна таблица с именами «ответы» с 10 столбцами, один для userId, а затем 9 столбцов, которые содержат все ответы (int) для каждого пользователя.

Все хорошо работает для вставок и обновлений, однако у меня есть куча времени, пытаясь создать представление, которое будет отображать все вопросы, каждого пользователя и каждый из его ответов на каждый вопрос.

Таблица вопросов;

CREATE TABLE [dbo].[Questions](
[questionId] [int] IDENTITY(1,1) NOT NULL,
[question] [nvarchar](max) NULL,
CONSTRAINT [PK_Questions] PRIMARY KEY CLUSTERED 
(
[questionId] ASC
 )WITH (
        PAD_INDEX  = OFF, 
        STATISTICS_NORECOMPUTE  = OFF, 
        IGNORE_DUP_KEY = OFF,       
        ALLOW_ROW_LOCKS  = ON, 
        ALLOW_PAGE_LOCKS  = ON
       ) ON [PRIMARY]
 ) ON [PRIMARY]

Таблица ответов;

CREATE TABLE [dbo].[Answers](
[empID] [nvarchar](10) NOT NULL,
[q1] [int] NULL,
[q2] [int] NULL,
[q3] [int] NULL,
[q4] [int] NULL,
[q5] [int] NULL,
[q6] [int] NULL,
[q7] [int] NULL,
[q8] [int] NULL,
[q9] [int] NULL,
 CONSTRAINT [PK_Answers] PRIMARY KEY CLUSTERED 
(
[empID] ASC
)WITH (
       PAD_INDEX  = OFF, 
       STATISTICS_NORECOMPUTE  = OFF, 
       IGNORE_DUP_KEY = OFF,   
       ALLOW_ROW_LOCKS  = ON, 
       ALLOW_PAGE_LOCKS  = ON
      ) ON [PRIMARY]
) ON [PRIMARY]

Ничто из того, что я пробовал, не работает, поэтому любые идеи от вас, которые могут помочь мне избежать повторного выполнения таблиц, были бы так высоко оценены!

Заранее спасибо за любую помощь.

Alex

Ответы [ 2 ]

2 голосов
/ 12 августа 2011

Мне кажется, что ваша таблица ответов должна иметь внешний ключ к таблице вопросов. Если ответ не может относиться к нескольким вопросам, в этом случае я бы сказал, что вам следует рассмотреть что-то вроде таблицы сопоставления / отношения, в которой есть FK для таблиц ответов и вопросов.

0 голосов
/ 12 августа 2011

Я думаю, вам может понадобиться заглянуть в сводные таблицы , чтобы выполнить вашу задачу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...