Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужен совет по структуре БД 
:(
    Опции темы
php5
Дата 11.2.2014, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 15.8.2007

Репутация: нет
Всего: нет



В общим есть 3 сущности 1- контент  2- комментарии 3- голосование 
Контента и  комментарии нужно связать с голосованием т.е    нужна возможность прогуливать как за  определенный контент (к примеру статья) так и  за комментарии к ней  
Я вижу 2 варианта: 

1)    Объединить 1 и 2  сущность в одну  с добавлением дополнительного поля  content_type по которому   определять какого типа запись (статья или комментарий) 

2)    Создать для таблицы  голосование первичный составной клочь из  target_id (id – 1-й или 2-й сущности)   user_id  и   target_ type (статья или комментарий)

Удобно   конечно использовать первый вариант с учетом того, что планируется также реализация возможность прикрепить к контенту и комментариям файлы, но вот меня беспокоит производительность выборок в таком варианте т.к может быть большое количество записей и в связи с этим целесообразно ли  это все  хранить в 1-й таблице


Это сообщение отредактировал(а) php5 - 11.2.2014, 22:51
PM MAIL   Вверх
tzirechnoy
Дата 11.2.2014, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: 0
Всего: 16



В любом случае -- первый вариант. Производительность во-первых зря особо беспокоит -- этого контэнта по сравнению с UGC будет мало скорее всего. Во-вторых -- ну, это жэ современные БД, будет что-то такое наклёвываться -- порежэшь таблицу, будешь обращаться через view. Тем более, что явно более внятно порежэшь.
PM MAIL   Вверх
php5
Дата 11.2.2014, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 15.8.2007

Репутация: нет
Всего: нет



На самом деле контента будет много  т.к фото и видео  тоже планирую хранить в  той же таблице  что и статьи 
PM MAIL   Вверх
Johny999
Дата 19.2.2014, 02:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 19.2.2014

Репутация: нет
Всего: нет



1-й вариант!
комментарий и статья - это практически одно и тоже. Вы сможете использовать один механизм добавления, форматирования.
Фото и видео в этой таблице хранить нельзя категорически. Во-первых - это большая и не нужная нагрузка на SQL-сервер, во-вторых - а если пользователь захочет 2 фото в одну статью вложить? В этом случае нужна просто отдельная таблица для файлов со ссылкой на таблицу статей/комментариев. И, кстати, нужно не поле content_type  добавлять, а поле parent, которое ссылается на статью (или родительский коммент), к которому данный коммент. Тогда статья будет иметь просто NULL или 0 в этом поле (это как пожелаете), и селективность индекса по этому полю будет хорошая.
PM MAIL   Вверх
php5
Дата 19.2.2014, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 15.8.2007

Репутация: нет
Всего: нет



Цитата(Johny999 @ 19.2.2014,  02:52)
1-й вариант!
комментарий и статья - это практически одно и тоже. Вы сможете использовать один механизм добавления, форматирования.
Фото и видео в этой таблице хранить нельзя категорически. Во-первых - это большая и не нужная нагрузка на SQL-сервер, во-вторых - а если пользователь захочет 2 фото в одну статью вложить? В этом случае нужна просто отдельная таблица для файлов со ссылкой на таблицу статей/комментариев. И, кстати, нужно не поле content_type  добавлять, а поле parent, которое ссылается на статью (или родительский коммент), к которому данный коммент. Тогда статья будет иметь просто NULL или 0 в этом поле (это как пожелаете), и селективность индекса по этому полю будет хорошая.


Под  хранить фото и видео я подразумевал,  что  будет храниться  всего-лишь  ссылка на  файл, что касается поля parent то для контента   типа комент  оно безусловно нужно но и поле   content_type  тоже т.к  если  к примеру к статье  будет прикреплен контент  разного вида то как я тогда смогу определить  без поля content_type   как его отрендерить 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Общие вопросы по базам данных"
LSD
Zloxa

Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:

  • вопросам по СУБД для которых нет отдельных подфорумов
  • вопросам которые затрагивают несколько разных СУБД (например проблема выбора)
  • инструменты для работы с СУБД
  • вопросы проектирования БД
  • теоретически вопросы о СУБД

Данный форум не предназначен для:

  • вопросов о поиске разлиных БД (если не понимаете чем БД отличается от СУБД то: а) вам не сюда; б) Google в помощь)
  • обсуждения проблем с доступом к СУБД из различных ЯП (для этого есть соответсвующие форумы по каждому ЯП)
  • обсуждения проблем с написание SQL запросов, для этого есть форум Составление SQL-запросов
  • просьб о написании курсовой, реферата и т.п., для этого есть Центр помощи или фриланс биржа
  • объявлений о найме специалистов, для этого есть раздел Объявления о найме специалистов

Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение. ;)


Полезные советы:

При написании сообщения постарайтесь дать теме максимально понятное название. В теме максимально подробно опишите проблему. Если применимо укажите: название базы данных и версии (MySQL 4.1, MS SQL Server 2000 и т.п.); используемых язык программирования; способа доступа (ADO, BDE и т.д.); сообщения об ошибках.

Для вставки кода используйте теги [code=sql] [/code].

Литературу по базам данных можно поискать здесь.

Действия модераторов можно обсудить здесь.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | СУБД, общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1040 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.