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

Может кто помочь с проектированием бд для приложения чатов по

типу телеграма? Чаты могут быть личные (2 человека) и групповые (много людей). Их храню в одной таблице chats. Вот только проблема в том, что для личного чата много лишних полей с NULL (на самом деле все из них не нужны). Но это удобно в том плане, что могу получить список чатов одним запросом. Как думаете, есть ли способ организации получше или так тоже можно оставить?

type это тип (dialog/group)
accessibility это доступность (public/private) только для групп

23 ответов

21 просмотр

пихай всё в json.

ruslan- Автор вопроса
Roman
пихай всё в json.

сделать у чата поле data типа json?

А где поля то лишние????

скоро пг про продвинут свои патчи для json в апстрим и заживём)

Какие?

central hardware
Какие?

например. https://habr.com/ru/companies/oleg-bunin/articles/646987/

Roman
скоро пг про продвинут свои патчи для json в апстр...

Главное судьбу инфомикс не повторить))))

Konstantin Zaitsev
Главное судьбу инфомикс не повторить))))

кто такие, чем интересна их судьба?

Roman
кто такие, чем интересна их судьба?

Лидер СУБД ))) давнишний Интересна потерей фокуса)

ruslan- Автор вопроса

Всё ещё не разобрался?))) Что мешает выделить это в отдельную таблицу? Разделить чаты по типу

ruslan- Автор вопроса
Makar M.
Всё ещё не разобрался?))) Что мешает выделить это ...

Ну тогда личные чаты вообще не будут иметь полей У меня была другая идея, но она посложней. Я решил оставить так. Похер, пусть будут пустые поля)

ruslan
Ну тогда личные чаты вообще не будут иметь полей У...

Ну как минимум надо знать от кого кому сообщения слать..

ruslan- Автор вопроса
Виктор Пронин
Ну как минимум надо знать от кого кому сообщения с...

А не, Сообщения ссылаются на чат, к которому относятся

ruslan
А не, Сообщения ссылаются на чат, к которому относ...

Смотри, есть у тебя две роли, издатель и подписчик, издатель публикует, подписчик читает, и там и там связь может быть многое к многим, и один к одному, разница только в типе так зачем тебе две таблицы? Сущности те же. Не бойся ты нулл, ты типом все разделиш

ruslan- Автор вопроса
Виктор Пронин
Смотри, есть у тебя две роли, издатель и подписчик...

Да я уже забил. Ну нулл так нулл. Хрен с ним. Других идей нет. И на стаке не нашел и тут

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта