2011-12-29 12 views
0

私はこのチュートリアル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; 

あなたの助けをいただければ幸いです。

+0

リンクの概要を提供したい場合があります。それは少し長いですし、ほとんどの人はあなたの質問に答える前にそれを読むことを望んでいません。 –

+0

あなたは完全にデータベースにコード化されたソリューションをお探しですか?また、参照するチュートリアルでは既知の深度が仮定され、結果セットの列数はこの深度に依存します。深さが不明な場合は、おそらく2列の親/子IDを返し、消費コードが動的な深さを処理するようにする必要があります。あなたが探しているものを明確にすることができれば、私はもっと助けることができるかもしれません。 –

答えて

0

「ネストされたセット」の調査を検討することをおすすめします。このarticleはネストされたセットで開始するのに適しています。また、ORM(たとえばdoctrine)を使用している場合は、ネストされたセット機能がサポートされています。

関連する問題