Russian Qt Forum

Qt => Базы данных => Тема начата: SektorCT от Март 18, 2023, 14:04



Название: Добавление записи в таблицу 'многие ко многим'
Отправлено: SektorCT от Март 18, 2023, 14:04
Всем привет.
Имеется таблица такого вида 'id, user_id, group_id'. Первое поле это ключ а два других int значения это внешние ключи на 2 других таблицы.
Как правильно заполнять таблицу которая является 'многие ко многим'? Нужно ли иметь ссылку на id таблиц с которыми связана моя? Или это надо иначе делать?
Или у QSqlQuery есть какой то инструмент для связи таких ключей?
Спасибо заранее.


Название: Re: Добавление записи в таблицу 'многие ко многим'
Отправлено: SektorCT от Март 18, 2023, 18:52
Получил для других таблиц с которыми связана 3 нужные id и как только пытаюсь вставить нужные значения то ошибка
QSqlError("", "Unable to fetch row", "No query")


Название: Re: Добавление записи в таблицу 'многие ко многим'
Отправлено: tux от Март 18, 2023, 23:48
Вы бы лучше простой проект сгенерировали с примером, что именно вы делаете и что хотите получить. А так просто найдётся кто-то, кто скажет "УМВР, прочти документацию". И на этом всё закончится.


Название: Re: Добавление записи в таблицу 'многие ко многим'
Отправлено: SektorCT от Март 21, 2023, 17:21
Да, обьясняю я не очень хорошо. Сейчас опишу подробнее.
Есть таблицы User (id(int), name, email), Group(id(int), name), Friends(user_id(int), group_id(int))
Последняя таблица имеет связь Многие ко многим, и связана по id к другми двум группам. Но связь по типу int. Интересно есть ли в каких то базах связь полей по ссылке? На данном этапе использую SqLite.

И дополнительный вопрос который по сути и этого касается, пытаюсь написать таблицы для уже часа и сообщений.
User (id(int), Chat(id, name, ...), Message(id, from(user), to(chat), ...). Может кто поправить или посоветовать? Как будто еще какой то таблицы не хватает, и таблицы именно многие ко многим.
У одного юзера же может быть чат как с один пользователем так и в группе в которой такой же пользователь будет находится.
Спасибо.


Название: Re: Добавление записи в таблицу 'многие ко многим'
Отправлено: tux от Март 21, 2023, 21:56
Описываете вы совсем классику, которая описана в документации. Ошибка может быть в создании таблицы, допустим, если ваше поле id в таблице User не уникально. Или id в таблице Group. Или запрос на добавление данных не правильный. Или вы вообще, индекс не создали, мало ли.
Я ведь про проект не просто так написал.