Категории и подкатегории - PullRequest
       16

Категории и подкатегории

0 голосов
/ 30 декабря 2011

Я нашел этот урок http://sqllessons.com/categories.html и хочу использовать описанный метод, так как он лучше рекурсивного вызова, но у меня есть две проблемы:

  1. Как я узнаю самый глубокий уровень? На одной странице у меня может быть 2, а на другой у меня может быть 20. Я что-то упустил или этот метод можно использовать, только если вы знаете самый глубокий уровень до выполнения!?

  2. У меня многоязычная база данных, как я могу изменить запросы для работы с моей таблицей ниже:


CREATE TABLE `categories` (
  `id` int(11) NOT NULL,
  `position` int(11) DEFAULT NULL,
  `parent_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `parent_id_fk` (`parent_id`),
  CONSTRAINT `categories_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `categories` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `categories_locale` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `slug` varchar(100) NOT NULL DEFAULT '',
  `name` varchar(40) NOT NULL DEFAULT '',
  `category_id` int(11) NOT NULL,
  `locale_id` smallint(5) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Ваша помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 30 декабря 2011

Возможно, вы захотите изучить «вложенные множества».Это статья о вложенных множествах - хорошее место для начала.Кроме того, если вы используете ORM (например, доктрину), поддерживается функциональность вложенного набора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...