4

id2つのフィールド(つまり、と)を持つカテゴリテーブルと、フィールドと。をcategoryname持つテーブルがあります。どちらもの外部キーです。category_parentcategoryidparentidcategoryid

したがって、1つのカテゴリに複数の親または複数の子を含めることができます。

私の質問は、特定のカテゴリのすべての親またはすべての子供をどのように見つけることができるかということです。

「すべての親」とは、直接の親だけでなく、直接の親の親などを意味します。配列またはリストにある親のIDが必要です。

この問題にはC#コードを使用したいと思います。

4

2 に答える 2

1

category_parent は必要ありません。テーブルのカテゴリと親に関するすべてを行うことができます。

SELECT CatgoryId,Cat​​egoryName FROM Category WHERE ParentId が null >>> これはメイン カテゴリ用です

SELECT CategoryId, CategoryName FROM Category WHERE ParentId=2 >>> 特定のカテゴリについて

  CREATE TABLE [dbo].[Category](
[CategoryId] [int] IDENTITY(1,1) NOT NULL,
[CategoryName] [nvarchar](50) NOT NULL,
[ParentId] [int]  FOREIGN KEY REFERENCES [dbo].[Category] ([CategoryId]))
于 2012-07-24T09:04:26.697 に答える
0

1 つのアプローチは、再帰的な共通テーブル式を使用する ことですが、MySQL はこれをサポートしていないと思います (間違っている場合は訂正してください)。したがって、カーソルまたはストアド プロシージャを使用することができます。MySQL での階層データの管理に関するこの記事もお読みください。

于 2012-07-22T00:59:02.687 に答える