|
|
|
Организация внешнего ключа
|
|||
|---|---|---|---|
|
#18+
Уважаемые коллеги! Есть три таблица: Users, Guests и Responses. Таблица Users имеет структуру: UserID. На одну запись из таблицы Users может приходиться много записей из таблицы Guests. Таблица Guests имеет структуру: GuestID, UserID. На одну запись из таблицы Guests может приходиться много записей из таблицы Responses. Возможно два варианта структуры таблицы Responses: - вариант 1: GuestID, UserID, Response. - вариант 2: GuestID, Response. Как правильно составить внешний ключ в таблице Responses, то есть какой вариант выбрать, чтобы можно было выбрать все ответы, относящиеся к какой-то конкретной записи из таблицы Users? (Преимущество первого варианта в том, что не нужно будет осуществлять JOIN, а второго - в том, что не нужно будет создавать большой внешний ключ.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 08:09 |
|
||
|
Организация внешнего ключа
|
|||
|---|---|---|---|
|
#18+
AnaceH, Если вы не разбираетесь, то не засоряйте форум. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 12:24 |
|
||
|
Организация внешнего ключа
|
|||
|---|---|---|---|
|
#18+
alch01AnaceH, Если вы не разбираетесь, то не засоряйте форум. Вы б эта... "преимущество не осуществлять джоин" - не хочете все в одной плоской таблице xls сделать ? А чо - ваапще никаких джоинов. Еще очень зашибись по быстродействию - каждому юзеру свою отдельную таблицу респонсов завести - небось летать будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 13:11 |
|
||
|
Организация внешнего ключа
|
|||
|---|---|---|---|
|
#18+
alch01, вообще-то AnaceH прав, ответ действительно там. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 13:11 |
|
||
|
Организация внешнего ключа
|
|||
|---|---|---|---|
|
#18+
tanglir, Ну и каков ответ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 14:17 |
|
||
|
Организация внешнего ключа
|
|||
|---|---|---|---|
|
#18+
alch01tanglir, Ну и каков ответ? Про нормализацию почитайте, разбирающийся Вы наш. Что толку что Вам дадут ответ на единичный вопрос? У Вас на лице непонимание серьезного ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 14:57 |
|
||
|
Организация внешнего ключа
|
|||
|---|---|---|---|
|
#18+
аспекта реляционной модели данных. Без которого проектирование невозможно как таковое. И боязнь "лишних" джойнов только подстверждает это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 15:03 |
|
||
|
Организация внешнего ключа
|
|||
|---|---|---|---|
|
#18+
AnaceH, Я нашел ответ. Лейте воду дальше... Второй вариант приемлем, если ввести доп. таблицу GuestsOfUsers, имеющий структуру: UserID, GuestID. При указанной мною структуре нужно использовать первый вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 15:13 |
|
||
|
Организация внешнего ключа
|
|||
|---|---|---|---|
|
#18+
alch01Второй вариант приемлем, если ввести доп. таблицу GuestsOfUsers, имеющий структуру: UserID, GuestID.Но ведь у вас уже есть такая таблица alch01Таблица Guests имеет структуру: GuestID, UserID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 16:38 |
|
||
|
Организация внешнего ключа
|
|||
|---|---|---|---|
|
#18+
tanglir, Я имел ввиду вот такую структуру. Причем концептуально это уже другое, потому что здесь гость может существовать без пользователя. Users: UserID, UserName GuestsOfUsers: GuestID, UserID. Guests: UsersID, GuestName. Вот причина, по которой вариант 1 правильный: записи в таблице однозначно определяются ключом UserID и GuestID. Поэтому таким же должен быть внешний ключ. Иначе не получится связи один ко многим таблицы Guests и Responses. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 16:57 |
|
||
|
Организация внешнего ключа
|
|||
|---|---|---|---|
|
#18+
alch01Уважаемые коллеги! Есть три таблица: Users, Guests и Responses. Таблица Users имеет структуру: UserID. На одну запись из таблицы Users может приходиться много записей из таблицы Guests. Таблица Guests имеет структуру: GuestID, UserID. На одну запись из таблицы Guests может приходиться много записей из таблицы Responses. Возможно два варианта структуры таблицы Responses: - вариант 1: GuestID, UserID, Response. - вариант 2: GuestID, Response. Как правильно составить внешний ключ в таблице Responses, то есть какой вариант выбрать, чтобы можно было выбрать все ответы, относящиеся к какой-то конкретной записи из таблицы Users? (Преимущество первого варианта в том, что не нужно будет осуществлять JOIN, а второго - в том, что не нужно будет создавать большой внешний ключ.) А Вы можете сформулировать задачу на концептуальном уровне? Тогда будет всем все понятно:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2012, 21:31 |
|
||
|
Организация внешнего ключа
|
|||
|---|---|---|---|
|
#18+
Бредятина, Пожалуйста! Пользователь может создать множество гостей и событий. Каждый гость всегда приглашен на каждое событие. Каждый гость может ответить, придет он или нет, на каждое событие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2012, 09:12 |
|
||
|
Организация внешнего ключа
|
|||
|---|---|---|---|
|
#18+
alch01, То есть есть еще таблица Events, о которой я умолчал: EventID, UserID, Name. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2012, 09:17 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37836430&tid=1541640]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
101ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 358ms |

| 0 / 0 |
