Я хотел бы создать простое приложение, где каждый пользователь будет делать то же обследование 30 вопросов, для каждого вопроса, то он или она будет выбрать Да или НетОтношения между моделями
Как я знаю, 3 вида отношений: «один к одному», «много-к-одному», «многие-ко-многим».
Однако я не знаю, какой путь является наиболее оптимальным для установления отношений.
Вот что я думаю:
User:
+ id (PK)
+ name
Question:
+ id (PK)
+ content
Choice:
+ user (Foreign Key) //Many-To-One or One-To-One ? (1)
+ question (Foreign Key) //Many-To-One or One-To-One ? (2)
я застрял здесь, потому что я не уверен, если:
(1) 1 Пользователь может сделать много вариантов (многие-к-одному) ИЛИ 1 Пользователь может сделать ТОЛЬКО 1 выбор для каждого Вопроса (один-к-одному)?
(2) 1 Вопрос имеет только 1 выбор (да/нет) ИЛИ 1 Вопрос может быть «Да» для этого пользователя и «Нет» для другого пользователя.
Спасибо!
Спасибо за быстрый ответ. Пожалуйста, простите меня, если мой следующий вопрос слишком невежественен. Насколько я понимаю ваш ответ, Пользователь и вопрос находятся в отношениях «один-ко-многим», потому что у 1 пользователя много объектов Вопроса. Однако я задаюсь вопросом, есть ли способ создать 30 объектов Вопросов и повторно использовать их для многих пользователей. Если это возможно, так что один вопрос может использоваться многими пользователями. В этом случае отношение между пользователем и вопросом будет много-ко-многим? Кроме того, что такое отношения между выбором и вопросом? –
Вы слишком смущены этим, и я не знаю, как сделать его более понятным вам. Всегда есть мнение, когда дело доходит до моделирования данных, но для меня кажется, что вопрос и пользователь не имеют абсолютно никаких отношений, кроме модели Choice, которая показывает, какой выбор Пользователь сделал в отношении Вопроса. Сказав это, есть много способов, которыми вы можете моделировать это, и это сводится к множеству факторов, таких как запросы, которые вы будете использовать и т. Д. Например, вы можете использовать отношения «многие ко многим» с «Выбор», являющиеся сквозной моделью. Если вам нужно, в этом контексте никто не может сказать. – Wtower
Спасибо, Wtower! Я буду читать больше из вариантов метафайлов, которые вы мне дали, и попробуйте свое предложение! Приятный день! –