sql >> データベース >  >> RDS >> Mysql

カテゴリ、サブカテゴリ、および関連する書籍のデータベースを設計する

    トップレベルのカテゴリであろうとサブカテゴリであろうと、「カテゴリ」に複数のテーブルを設定する理由はありません。それらはすべて単なる「カテゴリ」です。

    したがって、parent_idを持つ「categories」という単一のテーブルがあります。 フィールド:

    // categories table
    id
    name
    user_id
    parent_id
    

    すべてのトップレベルのカテゴリを取得する場合は、categoriesに対してクエリを実行するだけです。 parent_idという条件のテーブル nullです。

    次に、サブカテゴリを取得する場合は、categoriesに対してクエリを実行するだけです。 parent_id = 123という条件のテーブル (または何でも)。

    これにより、すべてが非常にクリーンに保たれるだけでなく、サブサブサブサブカテゴリを追加し続けたい場合の拡張も可能になります...など

    もう1つのオプションは、CakePHPのTreeBehavior を使用することです。 。

    個人的には、上記で提案した方法を使用していますが、この動作を十分に理解するのに時間がかかっていないことが原因である可能性があります。



    1. WordPressデータベースに新しい列を追加する

    2. 多対多の関係の例

    3. MySQLのフィールドから最初の明確な一致のみを選択するにはどうすればよいですか?

    4. java.sql.SQLException:-ORA-01000:最大オープンカーソルを超えました