![]() |
| Здравствуйте, Гость ( Вход | Регистрация | Что даёт регистрация на форуме? ) | Восстановить пароль | Выслать повторно письмо для активации |
![]() |
|
Модераторы: LSD |
![]()
|
|
||
|
| bagos |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Друзей: 0; Групп: 0 Регистрация: 17.6.2006 Репутация: нет Всего: нет |
Всем привет, проектирую БД, столкнулся со след. вопрсом который не могу решить:
В базе есть две таблицы: новости и фото, так вот я хочу сделать возможным добавление комментариев для конкретной новости или фотографии. Думаю что для комментариев достаточно одной таблицы в которой будут храниться все комментарии и для новостей и для фото. в таблице новости поля id,name,author,date,text в таблице photo поля id,name,author,date,text Создал таблицу comments: id,author,text,date -- вот тут нужно подробнее, нужно еще два поля, первое будет указывать на то какой раздел, новости или фото, второй будет содержать ссылку на id записи новости или фото. Прошу сказать правильно я рассуждаю или нет, буду благодарен всем ответам))) |
|||
|
||||
| KelTron (Online) |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 502 Друзей: 0; Групп: 0 Регистрация: 8.10.2006 Где: Красноярск Репутация: нет Всего: 21 |
Если уверен, что структура комментов для фоток и новостей всегда будет одинакова, то всё правильно..) Я бы сделал также.
-------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1272 Друзей: 0; Групп: 3 Регистрация: 15.1.2006 Где: Украина Репутация: нет Всего: 50 |
лучшим решением будет multi table inheritance
-------------------- Все, что не анархия -- то фашизм. |
|||
|
||||
| Gluttton |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 552 Друзей: 0; Групп: 0 Регистрация: 28.8.2008 Репутация: 6 Всего: 31 |
А я бы не экономил... Сделайте две таблицы с коментариями и для новостей и для фотографий. Приемущества: - более логично (прозрачно), т.е. мне как человеку будет гараздо проще понять задумку автора БД если я увижу две не связанные таблицы: фотографии и новости и с каждой из них связанную таблицу с коментариями; а если бы я увидел три таблицы связанные между собой: новости, фотографии и коментарии, то я бы начал думать, а что же этим хотели сказать; - т.к. (а точнее будет сказать если) коментарии к фотографиям и коментарии к новостям это разные сущности, то их целесообразнее разнести в разные таблицы для гибкости, а то вдруг потом окажеться, что для коментариев к фотографиям необходимо ещё и указывать фото-стаж коментирующего, а к коментариям новостей политическую принадлежность и что тогда. Какие приемущества в использовании одной таблицы? Это сообщение отредактировал(а) Gluttton - 4.2.2010, 17:44 |
||||
|
|||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1272 Друзей: 0; Групп: 3 Регистрация: 15.1.2006 Где: Украина Репутация: нет Всего: 50 |
фотография -- контент
новость -- контент комментарий к фотографии -- комментарий к контенту комментарий к новости -- комментарий к контенту Преимучества -- единообразность в управлении, расширяемость и, как ни странно, логичность. При добавлении новых типов контента не нужно плодить таблици, хранящие одни и те же сущности. -------------------- Все, что не анархия -- то фашизм. |
|||
|
||||
| Akina (Online) |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 13576 Друзей: 0; Групп: 0 Регистрация: 8.4.2004 Где: Зеленоград, Москв а, Россия Репутация: 7 Всего: 243 |
Я бы новости и фото собрал в одну таблицу. Как раз исходя из соображения "одна сущность - контент". Пустая строка в поле News - значит это фота, пустая строка в поле Photo - значит новость, оба заполнены - значит новость с фотографией, оба пусты ... бага в БД. И соответственно нет проблемы как приклеивать комменты.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Frees (Online) |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1288 Друзей: 0; Групп: 1 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 1 Всего: 29 |
если плодить таблицы с комментариями то при разработке ПО для этой базы нужно будет изголятся и либо плодить формы либо писать форму которая будет уметь показывать коммент из любой таблицы...(Надеюсь понятно сказал)
можно сделать так таблица новости таблица фото таблица комент и таблица которая ссылается на эти три сущности(три поля: ид новости,ид фото, ид комента) в ней можешь как угодно соединять коменты фото и новости между собой... |
|||
|
||||
| bagos |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Друзей: 0; Групп: 0 Регистрация: 17.6.2006 Репутация: нет Всего: нет |
Спасибо, мужики! я привел пример насчет 2 таблиц, на самом деле разделов много, фото, видео,новости,флеш и т.д.,
Добавлено через 2 минуты и 1 секунду и для всех нужна возможность комментирования |
|||
|
||||
| Frees (Online) |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1288 Друзей: 0; Групп: 1 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 1 Всего: 29 |
другой вариант
заведи таблицу "реестр" с одним (для начала) полем все сущности фото, видео,новости,флеш и т.д будут ссылаться на нее комментарии тоже должен ссылаться на реестр. те для того что бы показать для какой сущности комменарии он должен указывать на ту же самую запись в таблице реестр |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1272 Друзей: 0; Групп: 3 Регистрация: 15.1.2006 Где: Украина Репутация: нет Всего: 50 |
Вариантов можно много напридумывать. Но есть стандартное, проверенное решение -- multi table inheritance. Посыл в гугл по этому запросу еще в третем сообщении темы
-------------------- Все, что не анархия -- то фашизм. |
|||
|
||||
| bagos |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Друзей: 0; Групп: 0 Регистрация: 17.6.2006 Репутация: нет Всего: нет |
multi table inheritance - с англ. у меня плохо, а на русском языке нормальной инфы по этой теме нету, может скажете в пару словах что это и для чего?
А вообще чем плохо создавать для каждой таблицы отдельную таблицу с комментариями? Или чем плохо иметь одну общую таблицу с комментами на все разделы? Добавлено через 1 минуту и 4 секунды это создание класса или чтото подобное... Добавлено через 6 минут и 27 секунд по поводу структуры таблицы комментариев, она не будет меняться, поэтому проблем не должно быть если это будет общая табла комментариев, но доконца решение не принял, будут еще какие советы от народа? |
|||
|
||||
| Akina (Online) |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 13576 Друзей: 0; Групп: 0 Регистрация: 8.4.2004 Где: Зеленоград, Москв а, Россия Репутация: 7 Всего: 243 |
Применимость совета (и уж тем более форма применения) несколько зависит от СУБД... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| bagos |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Друзей: 0; Групп: 0 Регистрация: 17.6.2006 Репутация: нет Всего: нет |
mysql 5
Добавлено через 7 минут ![]() посмотрите корректна ли структура? |
|||
|
||||
| Zloxa (Online) |
|
|||
![]() Новичок ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1256 Друзей: 0; Групп: 0 Регистрация: 12.9.2008 Где: СССР ☭ Репутация: 2 Всего: 59 |
comments: id,author,text,date,ref_photo,ref_news
+ форейнкей на два последних поля, и, если надо - чек что (хоть|лишь) одно из них не должно быть нулл значит полей должно быть не два а больше. FK на таблицу новостей и фото одновременно? Ты туда не сможешь инсертиться, если у тебя не будет фото и новости с одним ID. Именно в этом основной плюс предложенной выше схемы - возможность использования декларативных ограничений для контроля целостнотсти. О какой платформе идет речь? Добавлено через 7 минут и 17 секунд изначально не правильно понял предложенную solenko, схему и мне показлось он прав. Осмыслив, пришлось отредактировать свой пост. Это сообщение отредактировал(а) Zloxa - 5.2.2010, 11:40 |
|||
|
||||
| solenko |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1272 Друзей: 0; Групп: 3 Регистрация: 15.1.2006 Где: Украина Репутация: нет Всего: 50 |
Каким образом? не могу понять причем тут платформа. Паттерны тем и хороши, что преминимы для практически любой платформы.
Так и не понял как меня поняли ) Прикрепляю схемку Присоединённый файл ( Кол-во скачиваний: 24 )
1.png 26,15 Kb-------------------- Все, что не анархия -- то фашизм. |
||||
|
|||||
|
||||
|
|
|
|||
|
||||
![]()
|
| Правила форума "Общие вопросы по базам данных" | |
|
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по базам данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Хостинг: Vingrad Hosting Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |
![]() |