172 похожих чатов

Всем привет) Есть таблица users и data Предполагается, что у каждого юзера

может быть несколько строчек из data
В таком случае же делается отдельная таблица для связки users => data?
Какой тогда primary key будет? Он же должен быть уникальным.
А тут один юзер будет иметь несколько строк с data.id

Или сделать наоборот
Primary key == data.id?

Какая практика вообще в таких случая приветствуется?
Cпасибо)

12 ответов

3 просмотра

отдельная таблица — это многие-ко-многим. в вашем случае достаточно в data добавить колонку user_id

на data_users будет композитный primary key например, если не добавлять дпоолнительных полей

Mikhail-Smolnikov Автор вопроса
Виктор Егоров
отдельная таблица — это многие-ко-многим. в вашем ...

Хорошо, а если предположим, что несколько юзеров будут иметь одну и ту же data?

Mikhail Smolnikov
Хорошо, а если предположим, что несколько юзеров б...

это дополнительное условие, или же полностью новое?

Mikhail-Smolnikov Автор вопроса
Mikhail-Smolnikov Автор вопроса
Dmitriy Sviridov
Поле data_id в таблице users

Грубо говоря каждый раз перед созданием data проверять, есть ли такое уже в таблице, и если есть, отсылать на эту строку?

Mikhail Smolnikov
Грубо говоря каждый раз перед созданием data прове...

Можно не проверять даже, достаточно внешний ключ повесить - PostgreSQL сам проверит

Mikhail Smolnikov
это который foreign key?

Да. Но, судя по тому, что вы выше написали "Первоначально заложить и такую возможность" - вам нужно всё же m2m

Mikhail-Smolnikov Автор вопроса
Dmitriy Sviridov
Да. Но, судя по тому, что вы выше написали "Первон...

т.е через отдельную реляционную таблицу?

Mikhail Smolnikov
т.е через отдельную реляционную таблицу?

Да, но даже так внешние ключи, естественно, нужны

Похожие вопросы

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Кто-нибудь решал проблему с автоматическим скроллингом к выбранной ячейке в TDBGrid в Lazarus? Проблема в том, что есть допустим 3 столбца, третий столбец виден наполовину, вк...
Дмитрий Логинов
1
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Чорт! Чорт! Чорт! Стала ставить через GetIt (написано же, что ручками не рекомендуется) Сломалось на дублировании моей TSkLabel. Чтож мне ее по всем проектам переименовывать в...
Катерина Свиридова
7
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
Hey someone plz help to resolve my issue here is my table... Log { id user_id type target_ct target_obj_id action_ct action_obj_id workspace_id created_at } i wanna fil...
Rahul Singh
1
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
Карта сайта