Ник138
Новичок
Добрый день!
Передо мной встала задача создать базу данный (MySQL) комплектующих и выводить информацию на локальный сайт (сервер apache или nginx) при помощи php.
Имеется узел в него могут входить платы, модули, блоки и т.д.
При этом некоторые платы и модули могут входить в иные узлы и изделия.
Как грамотно организовать хранение бд с последующим ее ростом для вывода состава выбранного узла/изделия?
Мое видение:
1. Для начала создам таблицу со всеми уникальными компонентами (табл.1):
id, desc (описание: плата, блок, узел и т.д.), name (наименование, обозначение), spec (шифр, кодовое обозначение), decimal (децим. номер)
2. Вторая таблица - таблица связей (табл.2):
id, id_par (родитель), id_child (ребенок), qty (кол-во в ед.), (scheme (схемат. номер) !!! если несколько, то и схем. номера разные)
Таким образом, для просмотра состава того или иного узла, я делаю заброс к табл. 2 и при помощи рекурсии делаю обращение к табл.1, пока результат обращения к табл.2 не станет равным нулю.
Грамотно ли я организовал структуру бд и запросы к ней?
Допустим, если модуль, имеет больше 10 вложений, не слишком ли такой запрос нагрузит сервер? Не имеет ли смысл делать промежуточную таблицу и время от времени ее актуализировать отдельным запросом.
Передо мной встала задача создать базу данный (MySQL) комплектующих и выводить информацию на локальный сайт (сервер apache или nginx) при помощи php.
Имеется узел в него могут входить платы, модули, блоки и т.д.
При этом некоторые платы и модули могут входить в иные узлы и изделия.
Как грамотно организовать хранение бд с последующим ее ростом для вывода состава выбранного узла/изделия?
Мое видение:
1. Для начала создам таблицу со всеми уникальными компонентами (табл.1):
id, desc (описание: плата, блок, узел и т.д.), name (наименование, обозначение), spec (шифр, кодовое обозначение), decimal (децим. номер)
2. Вторая таблица - таблица связей (табл.2):
id, id_par (родитель), id_child (ребенок), qty (кол-во в ед.), (scheme (схемат. номер) !!! если несколько, то и схем. номера разные)
Таким образом, для просмотра состава того или иного узла, я делаю заброс к табл. 2 и при помощи рекурсии делаю обращение к табл.1, пока результат обращения к табл.2 не станет равным нулю.
Грамотно ли я организовал структуру бд и запросы к ней?
Допустим, если модуль, имеет больше 10 вложений, не слишком ли такой запрос нагрузит сервер? Не имеет ли смысл делать промежуточную таблицу и время от времени ее актуализировать отдельным запросом.