powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Организация внешнего ключа
15 сообщений из 15, страница 1 из 1
Организация внешнего ключа
    #37835782
alch01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые коллеги!

Есть три таблица: Users, Guests и Responses.

Таблица Users имеет структуру:
UserID.

На одну запись из таблицы Users может приходиться много записей из таблицы Guests. Таблица Guests имеет структуру:
GuestID,
UserID.

На одну запись из таблицы Guests может приходиться много записей из таблицы Responses. Возможно два варианта структуры таблицы Responses:

- вариант 1:
GuestID,
UserID,
Response.

- вариант 2:
GuestID,
Response.

Как правильно составить внешний ключ в таблице Responses, то есть какой вариант выбрать, чтобы можно было выбрать все ответы, относящиеся к какой-то конкретной записи из таблицы Users?

(Преимущество первого варианта в том, что не нужно будет осуществлять JOIN, а второго - в том, что не нужно будет создавать большой внешний ключ.)
...
Рейтинг: 0 / 0
Организация внешнего ключа
    #37836096
AnaceH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Организация внешнего ключа
    #37836154
alch01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AnaceH,

Если вы не разбираетесь, то не засоряйте форум.
...
Рейтинг: 0 / 0
Организация внешнего ключа
    #37836228
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alch01AnaceH,

Если вы не разбираетесь, то не засоряйте форум.
Вы б эта... "преимущество не осуществлять джоин" - не хочете все в одной плоской таблице xls сделать ? А чо - ваапще никаких джоинов. Еще очень зашибись по быстродействию - каждому юзеру свою отдельную таблицу респонсов завести - небось летать будет.
...
Рейтинг: 0 / 0
Организация внешнего ключа
    #37836229
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alch01, вообще-то AnaceH прав, ответ действительно там.
...
Рейтинг: 0 / 0
Организация внешнего ключа
    #37836354
alch01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

Ну и каков ответ?
...
Рейтинг: 0 / 0
Организация внешнего ключа
    #37836430
AnaceH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alch01tanglir,

Ну и каков ответ?
Про нормализацию почитайте, разбирающийся Вы наш. Что толку что Вам дадут ответ на единичный вопрос? У Вас на лице непонимание серьезного
...
Рейтинг: 0 / 0
Организация внешнего ключа
    #37836445
AnaceH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
аспекта реляционной модели данных. Без которого проектирование невозможно как таковое. И боязнь "лишних" джойнов только подстверждает это.
...
Рейтинг: 0 / 0
Организация внешнего ключа
    #37836462
alch01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AnaceH,

Я нашел ответ. Лейте воду дальше...

Второй вариант приемлем, если ввести доп. таблицу GuestsOfUsers, имеющий структуру:
UserID,
GuestID.

При указанной мною структуре нужно использовать первый вариант.
...
Рейтинг: 0 / 0
Организация внешнего ключа
    #37836620
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alch01Второй вариант приемлем, если ввести доп. таблицу GuestsOfUsers, имеющий структуру:
UserID,
GuestID.Но ведь у вас уже есть такая таблица
alch01Таблица Guests имеет структуру:
GuestID,
UserID.
...
Рейтинг: 0 / 0
Организация внешнего ключа
    #37836664
alch01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

Я имел ввиду вот такую структуру. Причем концептуально это уже другое, потому что здесь гость может существовать без пользователя.

Users:
UserID,
UserName

GuestsOfUsers:
GuestID,
UserID.

Guests:
UsersID,
GuestName.

Вот причина, по которой вариант 1 правильный: записи в таблице однозначно определяются ключом UserID и GuestID. Поэтому таким же должен быть внешний ключ. Иначе не получится связи один ко многим таблицы Guests и Responses.
...
Рейтинг: 0 / 0
Организация внешнего ключа
    #37836958
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alch01Уважаемые коллеги!

Есть три таблица: Users, Guests и Responses.

Таблица Users имеет структуру:
UserID.

На одну запись из таблицы Users может приходиться много записей из таблицы Guests. Таблица Guests имеет структуру:
GuestID,
UserID.

На одну запись из таблицы Guests может приходиться много записей из таблицы Responses. Возможно два варианта структуры таблицы Responses:

- вариант 1:
GuestID,
UserID,
Response.

- вариант 2:
GuestID,
Response.

Как правильно составить внешний ключ в таблице Responses, то есть какой вариант выбрать, чтобы можно было выбрать все ответы, относящиеся к какой-то конкретной записи из таблицы Users?

(Преимущество первого варианта в том, что не нужно будет осуществлять JOIN, а второго - в том, что не нужно будет создавать большой внешний ключ.)
А Вы можете сформулировать задачу на концептуальном уровне? Тогда будет всем все понятно:)
...
Рейтинг: 0 / 0
Организация внешнего ключа
    #37837315
alch01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бредятина,

Пожалуйста!

Пользователь может создать множество гостей и событий. Каждый гость всегда приглашен на каждое событие. Каждый гость может ответить, придет он или нет, на каждое событие.
...
Рейтинг: 0 / 0
Организация внешнего ключа
    #37837325
alch01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alch01,

То есть есть еще таблица Events, о которой я умолчал:
EventID,
UserID,
Name.
...
Рейтинг: 0 / 0
Организация внешнего ключа
    #37837449
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alch01, вот (только ключевые поля):

users:
userid

guests:
userid
guestid

events:
userid
eventid

responses:
guestid
eventid

Всё.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Организация внешнего ключа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]