Я новичок в проектировании баз данных и просто хотел высказать несколько мнений о том, подхожу ли я к этому логическим путем. Я создаю простую базу данных MySQL, через которую пользователи будут загружать элементы в ранее существовавшее (неизменное) иерархическое дерево.
Для простого примера:
Раздел 1
Раздел 1.1
Подраздел 1.1.1
Подраздел 1.1.2
Подраздел 1.2
Подраздел 1.2.1
Подраздел 1.2.2
Раздел 2
Подраздел 2.1
Подраздел 2.1.1
Подраздел 2.1.2
Подраздел 2.2
Подраздел 2.2.1
Подраздел 2.2.2
Структура дерева не изменится, пользователи будут просто загружать продукты, которые попадут в подразделения (отраслевой способ организации большого количества продуктов). Я провел исследование списков смежности и вложенных наборов, но я склоняюсь к трем отдельным таблицам, каждая из которых ссылается на свой родительский первичный ключ (поскольку верхние уровни дерева практически никогда не изменятся). Когда загружается новый продукт, он будет ссылаться на всех трех своих родителей (если он зарегистрирован в подразделе 1.1.2, он обязательно является частью раздела 1, подраздел 1). Окончательное дерево будет состоять из 4 разделов, по 10 разделов в каждом разделе и 10 подразделов в каждом разделе. Имеет ли это смысл в качестве стартовой стратегии?
Взаимодействие с базой данных более или менее ограничено вводом информации и ее точной категоризацией, а затем возможностью показать, сколько продуктов было подано в раздел, подразделение или подразделение. Библиотека будет отображаться в серии раскрывающихся списков, и щелчок по элементу списка приведет к отображению сохраненной информации.
Будем признательны за любые рекомендации или ссылки на литературу / учебные пособия!
(section_id, div_id, subdiv_id)
и хранить все это в одной таблице. однако он будет уязвим для ошибок иерархии, таких какsec #1, div 2.1, subsec 1.1.1
. - person Marc B   schedule 22.03.2012