Главная | Новости | Блог (rss) | Ответы | Учебник | Правила |
Вы здесь: ГлавнаяБлогСвязь данных
Вход | Регистрация

Связь данных

Часто требуется связать что-то с чем то. Вот простые примеры: комментарии в новостях, фотографии к заметке в блоге, опрос в блоге и т.д.
Теорию связей будем рассматривать на примере этого блога и комментариев к нему.
Структура данных блога blog, структура данных комментариев blogcomm.
У каждой записи в базе данных есть уникальный идентификатор. Идентификатор - это порядковый номер, начинающийся с 1 и последовательно увеличивающийся с каждой новой записью. Вот у этого текста тоже есть идентификатор (далее ID), и он равен 14.
Поле в структуре, отвечающее за идентификатор, называется id_item.
Связь "один ко многим" означает, что с одной записью может быть связано много записей. В нашем случае к одной записи блога может быть сколько угодно комментариев. Для указания, какая структура связана с какой, при создании структур указывается эта связь. При создании блога с комментированием в структуре blogcomm указывается связь с blog.
В структуре blogcomm есть поле id_link. В это поле заносится ID записи блога, с которой связан комментарий.
Если Вы добавите комментарий к этой заметке, то в структуре комментариев в поле id_link будет написано 14. Это значит, что комментарий связан с записью в блоге с ID 14.
Именно так система узнает, какие комментарии выводить к записи в блоге и не выводит комментарии от других заметок.
Конструктор Letnick.com позволяет создавать любые типы связей как между структурами (как связь один к одному, один ко многим, многие ко многим), так и внутри одной структуры (например, список рефералов). Но в этой заметке будем рассматривать только простейшую связь.
Эксперименты со связями будем проводить на основе структур данных "Новости с комментариями". Для работы новостей создается две структуры news и newscomm (полный аналог с блогом и комментариями). В newscomm указана связь с news. В шаблоне вывода новостей в секции вывода одной новости указано {newscomm.table}{newscomm.form}. В месте вставки {newscomm.table} будут выводиться связанные с новостью комментарии, а вместо {newscomm.form} - форма добавления комментария. При заполнении формы комментарий в этом случае автоматически привяжется к новости, и не нужно заботиться о заполнении связи.
Но есть возможность привязывать комментарии к новости, где бы ни располагалась форма добавления комментария. Требуется это очень редко, и если Вы не собираетесь придумывать сложные сайты, то всё, что будет описано ниже, Вам не понадобится.
Как уже говорилось в теоретической части, у каждой записи есть ID (поле id_item), а у связанных данных есть поле id_link, в которое записывается ID связи.
Представим, Вы хотите разместить форму комментирования в другом разделе. Для того чтобы указать связь, в тот раздел нужно передать ID новости, а при заполнении формы в id_link занести эти данные.
Создайте форму добавления комментария к новости. Раскройте секцию "Параметры полей" и заполните "ID связи" - "установить" "{GET[news]}". Создайте раздел "/комментарии/" и разместите там вывод формы комментария.
В шаблоне вывода новости добавляем <a href="/комментарии/?news={id_item}">Комментировать</a>. При переходе по ссылке на раздел будет передан идентификатор новости. При заполнении формы комментирования этот идентификатор будет записан в данные, и комментарий будет привязан к новости. Не удивляйтесь, что в пути ссылки использованы русские буквы. Это допускается конструктором, но только для сайтов, создающихся на хостинге. Хотя лучше все же использовать латиницу.
Выбирать комментарии, привязанные к новости, можно также в любом разделе. Для этого создайте вывод комментариев, в условии укажите "Активность" - "1", "Поле" - "ID связи", "Условие" - "Равно", "Значение" - "{GET[news]}". Предполагается, что в раздел будет передан идентификатор новости в get параметре news. Ссылка на раздел с комментариями выглядит подобно ссылке на форму добавления комментариев.

Если Вы мало что поняли, не переживайте. Эта тема в институте изучается в предмете "Базы данных" пол месяца. И рассказать все нюансы связи данных в короткой заметке просто невозможно. Но в большинстве случаев этого и не требуется. Все примеры сайтов сделатьсамому.рф могут быть сделаны без этих знаний.
26 янв 2012г 13:29:39
Просмотров: 1845
← предыдущая следующая →
29 апр 2015г 23:46:31, Андрей
Здравствуйте пользователи конструктора Letnick.com! Предлагаю всем нам об единица на сайте http://let-info.ru Есть форум, на котором можно обсуждать создавать и помогать в работе с созданном сайтом на конструкторе. Есть большой выбор смайликов для ваших сайтов и многое другое! Присоединяйтесь!
24 июл 2012г 22:03:42, Антон
Как вывести количество комментариев к новости?
Ответ: Самый лучший способ это при добавлении комментария вызывать событие и увеличивать счетчик комментариев в структуре новостей.
В стандартных структурах это реализовано.

Ваш комментарий
Имя *
E-mail
Сообщение *
Введите цифры * Цифры ?

Введите цифры с картинки без букв
 

О нас | Написать нам | Сообщить о правонарушении |

Создать свой сайт © Конструктор сайтов Letnick.com 2006-2017