LINUX.ORG.RU

Сообщения monsterkiller

 

книги по безопасному C, или за что браться после K&R

Сабж.

Под K&R в данном случае имеется в виду The C Programming Language.

Интересует скорее всего подборка советов на тему «как не надо делать». И советы из серии «используйте snprintf вместо sprintf, хотя бы просто на всякий случай».

monsterkiller
()

как правильно хранить в БД категории и подкатегории продуктов с почти неограниченной вложенностью?

Вот есть некий продукт. И может он входить в какую-нибудь категорию, а может и не входить ни в какую. В то же самое время его категория может являться подкатегорией другой категории, а может и включать в себя другие подкатегории.

То есть, возможны любые варианты вложенности.

  • продукты-->кислые-->яблоко_зелёное;
  • продукты-->фрукты-->яблоко_зелёное;
  • продукты-->не_овощи-->фрукты-->яблоко_зелёное;
  • продукты-->фрукты-->яблоки_переростки-->яблоко_большое_жёлтое;
  • яблоко_не_настоящее; - не входит ни в одну категорию.

Самые частые операции с данным хранилищем:

  • получить список всех продуктов в такой-то категории;
  • получить список всех категорий, в которые входит данный продукт.

Думается, что подобные задачи возникают регулярно, однако кроме таблички со списком отношений «старшая_категория--входящая_в_неё_категория» ничего в голову не приходит. Подобная же табличка заставляет строить рекурсивные запросы, что крайне негативно сказывается на процессорном времени, если уровень вложенности начинает превышать три-четыре шага.

Как правильно решать такую задачу?

monsterkiller
()

RSS подписка на новые темы