Добрый день. В БД новичок, прошу помощи в проектировании структуры.
В системе существуют посты, темы и юзеры. Необходимо организовать так, чтобы была максимальная производительность.
Посты соответствуют определенным темам из таблицы тем, по одному посту от юзера (не обязательно у юзера может быть пост).
Необходим доступ к списку постов конкретного юзера и темы каждого поста.
Так же необходим доступ к ответам всех юзеров по данной теме.
Мой алгоритм следующий:
Существует 4 таблицы: посты, темы, юзеры и отдельная таблица для каждого юзера (в качестве атрибута).
Для каждого объекта (пользователя) в таблице юзеров в качестве атрибута создавать отдельную таблицу в которой будут перечислены все темы и в соответствие им поставлены BOOL атрибут "наличие поста" и если есть, id поста в общей таблице постов.
Но не знаю, можно ли организовать вложенные таблицы (для юзеров), и как правильно (для оптимизации) так сделать.
Пока не уверен на счет СУБД, прочитал, что если просто необходимо дергать запросы, то безопасней и быстрей будет MySQL, вначале смотрел на PostgreSQL.
Буду очень благодарен за Ваши ответы. Спасибо
Макс: не уверен, конкретней это таблица с полями: id, тема(текст), дата(дата) если по моему алгоритму.
А в системе это просто список, каждая строка которого подразумевает кучу постов от разных пользователей.
таблица тем, таблица пользователей, таблица сообщений.
сообщения - id сообщения, пользователь(связь с таблицей пользователей), тема (связь с таблицей тем), текст (при желании + дата +на какое сообщение ответ)
темы - id темы (связь с таблицей сообщений), название темы, автор (если надо. связь с таблицей пользователей)
пользователь - id пользователя (связь с таблицами тем и сообщений), имя + всякое разное типа почты, даты рождения и т.д.
Ефим Соколов: это тема жутко холиварная. Я использую MySQL - и он мне нравится. Кто-то использует постгре - и он ему нравится. Безопаснее - крайне сложно оценить. Хакать сам сервер БД тема неблагодарная, чаще всего дыры в коде фронта. Быстрее - тоже все неоднозначно. Не думаю, что в ближайшее время Вы окунетесь в BigData, а до этого проблемы со скоростью скорее будут вызваны неоптимальными индексами и запросами, а не скоростью самой БД. Посмотрите, какая тема на Тостере активнее, ту БД и выбирайте. Логика проста - больше подписчиков = больше шанс получит ответ. Удачи.