При индексировании Contacts.account_id производительность выше, чем при сравнении подстрок в списке с запятыми-разделителями. Когда объявляется внешний ключ для столбца, во многих базах данных разных типов создается в неявном виде индекс по этому столбцу (проверьте данное утверждение по документации).
Путем добавления столбцов в таблицу пересечений можно также создать дополнительные атрибуты для каждой записи. Например, можно было бы записать дату, когда контактное лицо было добавлено для заданного продукта, или атрибут, отмечающий, кто является основным контактным лицом в отличие от второстепенных контактных лиц. Это невозможно сделать в списке, разделяемом запятыми.
ВНИМАНИЕ!
. Храните каждое значение в его собавеиных столбце и строке.
Дерево и есть дерево — сколько их еще вам надо, чтобы рассмотреть его ?
Рональд Рейган
ГЛАВА 3. ПРОСТЫЕ ДЕРЕВЬЯ
Предположим, что вы разрабатываете программное обеспечение для известного веб-сайта, где размещают новости науки и техники.
Это современный веб-сайт, так что пользователи могут добавлять комментарии и даже отвечать друг другу, создавая треды обсуждения, которые ветвятся и образуют сложную иерархическую структуру. Вы выбираете простое решение: отследить эти цепочки ответов. Каждый комментарий ссылается на комментарий, на который он отвечает.
Файл примера:.Trees/intro/parent.sql
CREATE TABLE Comments (
comment_id SERIAL PRIMARY KEY,
parent_id BIGINT UNSIGNED,
comment TEXT NOT NULL,
FOREIGN KEY (parent_id) REFERENCES Comments(comment_id) ) ;
Однако вскоре становится ясно, что с помощью одного SQL-запроса трудно извлечь длинную цепочку ответов. Можно получить только прямые дочерние объекты или, возможно, объединить комментарий с потомками на фиксированную глубину. Тем не менее треды дискуссий могут обладать неограниченной глубиной. Для получения комментариев в заданном треде потребовалось бы выполнить много SQL-запросов.
Другая идея состоит в извлечении всех комментариев и сборе их в древовидные структуры данных в памяти приложения, с использованием традиционных алгоритмов деревьев, которые проходят в школе. Но владельцы вебсайта сообщили вам, что они ежедневно публикуют десятки статей и каждая статья может обрастать сотнями комментариев. Непрактично сортировать миллионы комментариев каждый раз, когда кто-нибудь просматривает вебсайт.
Должен существовать оптимальный способ хранения тредов комментариев, позволяющий просто и эффективно извлекать всю цепочку обсуждений.
Опубликовал vovan666
June 18 2013 12:24:45 ·
0 Комментариев ·
3735 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.