- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева

Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Ниже приведён SQL-пример создания таблиц (пример на PostgreSQL):
-- Таблица пользователей
CREATE TABLE users ( id SERIAL PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, email VARCHAR(255) NOT NULL UNIQUE, password_hash VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
-- Таблица диалогов (бесед)
CREATE TABLE conversations ( id SERIAL PRIMARY KEY, name VARCHAR(100), is_group BOOLEAN DEFAULT FALSE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
-- Таблица участников беседы (связующая таблица)
CREATE TABLE conversation_participants ( conversation_id INTEGER NOT NULL REFERENCES conversations(id) ON DELETE CASCADE, user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE, joined_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (conversation_id, user_id) );
-- Таблица сообщений
CREATE TABLE messages ( id SERIAL PRIMARY KEY, conversation_id INTEGER NOT NULL REFERENCES conversations(id) ON DELETE CASCADE, sender_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE, message_text TEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, status VARCHAR(20) DEFAULT 'sent' );
-- Индексы для ускорения выборок (опционально)
CREATE INDEX idx_messages_conversation ON messages(conversation_id); CREATE INDEX idx_messages_sender ON messages(sender_id);
-- Дополнительно можно создать таблицу для статуса чтения сообщений отдельным пользователям
CREATE TABLE message_read_status ( message_id INTEGER NOT NULL REFERENCES messages(id) ON DELETE CASCADE, user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE, read_at TIMESTAMP, PRIMARY KEY (message_id, user_id) );
Эта схема позволяет:
Как это понять для групповых чатов ?
Нужно только 2 собеседника в 1 чате.
К примеру user1 написал user2, user 2 ответил user 1. - далее удаление у себя сообщение удалили к примеру 2 пользователя то оно удаляется автоматом из БД у обоих пользователей.
Видите не все так просто
Как это понять для групповых чатов ?
Нужно только 2 собеседника в 1 чате.
К примеру user1 написал user2, user 2 ответил user 1. - далее удаление у себя сообщение удалили к примеру 2 пользователя то оно удаляется автоматом из БД у обоих пользователей.
Видите не все так просто
Нам нужно создать придельно простой вариант, а потом дорабатывать, по примеру как я написал удаление сообщений и так далее, то есть учитывать все эти мелочи.
Пусть проект будет не большим но вполне рабочим с минимум "старой инфы" на примере удаления юзерами сообщений что равно удаление их из БД
К примеру user1 написал user2, user 2 ответил user 1. - далее удаление у себя сообщение удалили к примеру 2 пользователя то оно удаляется автоматом из БД у обоих пользователей.
Видите не все так просто
Ты прежде чем браться за такое - немного почитай про реляционные базы данных для начала, если такое пишешь. На самм деле это очень просто, с таких примеров начинают изучать БД на самом деле.
Ты прежде чем браться за такое - немного почитай про реляционные базы данных для начала, если такое пишешь. На самм деле это очень просто, с таких примеров начинают изучать БД на самом деле.
У меня в этом практики ноль, но, могу разобраться в прочем что и делаю.
Мне нужна некая простая база (рабочая) чтобы наглядно было, потом уже проще будет.
Как это понять для групповых чатов ?
Нужно только 2 собеседника в 1 чате.
Ну и упрости уже сам

У меня в этом практики ноль, но, могу разобраться в прочем что и делаю.
Мне нужна некая простая база (рабочая) чтобы наглядно было, потом уже проще будет.
Рабочая база - это сесть и почитать про базы данных. Как устроены, что умеют. Без этого приведенные примеры тебе ничего не дадут.
Зная основы, тебе уже будет абсолютно все равно на чем реализовывать - вордпрессе, или Питоне.
пример на PostgreSQL
Без кавычек у идентификаторов современный MySQL должен это понять. BOOLEAN DEFAULT FALSE и т.п. сейчас для него не проблема.
А про форматирование выше уже написали. Это даже вручную нетрудно отформатировать.
Вот кстати хороший пример этот флудер. Он старается, шлепает мессджи, думая что загадит весь форум.
Что думаешь, админ проснется и будет ручками выпиливать все? Нет, достаточно удалить юзера. Все сообщения каскадом удаляться из базы тоже. Когда БД поддерживает принципы ACID - это не вызывает сложностей. MySQL его поддерживает частично, а вот POSTGRSQL - полностью. Там каскадные связи строить проще.
современный MySQL
кстати почти полностью отказался от MySQL в пользу SQLite + nvme)