사용 OS : WIN10 PRO 

사용프로그램 : MSSQL 2014

---------------------------------------------------------------

무한카테고리를 생성하고 각 언어(한국/중국/일본/영어)별 카테고리별 등록하는데 까지 진행완료 했어요.


--카테고리 데이터
---------------------------------------------

GO

SET ANSI_PADDING OFF

GO

SET IDENTITY_INSERT [dbo].[category] ON 


INSERT [dbo].[category] ([CateID], [CateName], [Depth], [DisplaySeq], [ParentID]) VALUES (1, N'컴퓨터', 1, 1, 0)

INSERT [dbo].[category] ([CateID], [CateName], [Depth], [DisplaySeq], [ParentID]) VALUES (2, N'가전', 1, 2, 0)

INSERT [dbo].[category] ([CateID], [CateName], [Depth], [DisplaySeq], [ParentID]) VALUES (3, N'스포츠', 1, 3, 0)

INSERT [dbo].[category] ([CateID], [CateName], [Depth], [DisplaySeq], [ParentID]) VALUES (4, N'자동차', 1, 4, 0)

INSERT [dbo].[category] ([CateID], [CateName], [Depth], [DisplaySeq], [ParentID]) VALUES (5, N'여행', 1, 5, 0)

INSERT [dbo].[category] ([CateID], [CateName], [Depth], [DisplaySeq], [ParentID]) VALUES (6, N'노트북', 2, 1, 1)

INSERT [dbo].[category] ([CateID], [CateName], [Depth], [DisplaySeq], [ParentID]) VALUES (8, N'삼성노트북', 3, 1, 6)

INSERT [dbo].[category] ([CateID], [CateName], [Depth], [DisplaySeq], [ParentID]) VALUES (9, N'엘지노트북', 3, 2, 6)

INSERT [dbo].[category] ([CateID], [CateName], [Depth], [DisplaySeq], [ParentID]) VALUES (10, N'S01341

', 4, 1, 8)

INSERT [dbo].[category] ([CateID], [CateName], [Depth], [DisplaySeq], [ParentID]) VALUES (11, N'L01342

', 4, 2, 9)

INSERT [dbo].[category] ([CateID], [CateName], [Depth], [DisplaySeq], [ParentID]) VALUES (12, N'15

', 5, 1, 10)

INSERT [dbo].[category] ([CateID], [CateName], [Depth], [DisplaySeq], [ParentID]) VALUES (13, N'13

', 5, 2, 11)

INSERT [dbo].[category] ([CateID], [CateName], [Depth], [DisplaySeq], [ParentID]) VALUES (14, N' 냉장고


', 1, 2, 2)

INSERT [dbo].[category] ([CateID], [CateName], [Depth], [DisplaySeq], [ParentID]) VALUES (15, N'삼성냉장고

', 3, 1, 14)

INSERT [dbo].[category] ([CateID], [CateName], [Depth], [DisplaySeq], [ParentID]) VALUES (16, N'지펠

', 4, 1, 15)

INSERT [dbo].[category] ([CateID], [CateName], [Depth], [DisplaySeq], [ParentID]) VALUES (17, N'2019년형

', 5, 1, 16)

INSERT [dbo].[category] ([CateID], [CateName], [Depth], [DisplaySeq], [ParentID]) VALUES (18, N'축구


', 2, 1, 3)

INSERT [dbo].[category] ([CateID], [CateName], [Depth], [DisplaySeq], [ParentID]) VALUES (19, N'축구화


', 3, 1, 18)

INSERT [dbo].[category] ([CateID], [CateName], [Depth], [DisplaySeq], [ParentID]) VALUES (20, N'나이키

', 4, 1, 19)

INSERT [dbo].[category] ([CateID], [CateName], [Depth], [DisplaySeq], [ParentID]) VALUES (21, N'아디다스

', 4, 2, 19)

INSERT [dbo].[category] ([CateID], [CateName], [Depth], [DisplaySeq], [ParentID]) VALUES (22, N'성인용

', 5, 1, 20)

INSERT [dbo].[category] ([CateID], [CateName], [Depth], [DisplaySeq], [ParentID]) VALUES (23, N'어린이용

', 5, 2, 21)

INSERT [dbo].[category] ([CateID], [CateName], [Depth], [DisplaySeq], [ParentID]) VALUES (24, N'현대


', 2, 1, 4)

INSERT [dbo].[category] ([CateID], [CateName], [Depth], [DisplaySeq], [ParentID]) VALUES (25, N'가솔린차

', 3, 1, 24)

SET IDENTITY_INSERT [dbo].[category] OFF


go


--category 테이블

------------------------------------------------

CREATE TABLE [dbo].[category](

[cateID] [int] IDENTITY(1,1) NOT NULL,

[CateName] [nchar](100) NOT NULL,

[depth] [int] NOT NULL CONSTRAINT [DF_category_depth]  DEFAULT ((1)),

[DisplaySeq] [int] NULL,

[parentID] [int] NOT NULL CONSTRAINT [DF_category_ParentID]  DEFAULT ((0)),

[lang] [nvarchar](5) NOT NULL,  

 CONSTRAINT [PK_category] PRIMARY KEY NONCLUSTERED 

(

[cateID] ASC,

[parentID] ASC,

[lang] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]


GO


이 카테고리에 현재까지 5단계까지 있는데 
각 단계별 detail 제품을 입력하려 합니다.

이때 제품 테이블은 아래와 같이 설계했어요. 


--product 테이블

CREATE TABLE [dbo].[Product](

[prNum] [int] IDENTITY(1,1) NOT NULL,

[prTitle] [varchar](255) NULL,

[prSSN] [nchar](50) NULL,

[prIntro] [varchar](1000) NULL,

[prMainimg] [nvarchar](255) NULL,

[prMainimgOrg] [nvarchar](255) NULL,

[prContent] [ntext] NULL,

[prfile1] [nvarchar](255) NULL,

[prfile2] [nvarchar](255) NULL,

[prfile3] [nvarchar](255) NULL,

[prfile4] [nvarchar](255) NULL,

[prlink1] [nvarchar](255) NULL,

[prlink2] [nvarchar](255) NULL,

[flag] [char](1) NULL CONSTRAINT [DF_Shop_flag]  DEFAULT ((0)),

[parentID] [int] NOT NULL,

[cateID] [int] NOT NULL,

 CONSTRAINT [PK_Product] PRIMARY KEY CLUSTERED 

(

[prNum] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]


GO


질문1) 제품등록 할 때 1,2 단계에서 입력되는것도 있고

         5단계까지 가서 입력하는것도 있는데 이 때 

         어떻게 입력되어야 나중에 제품리스트에서 

         해당 목록을 검색할 수 있는지요? (cateID만 입력해주면 되는지 아니면 parentID 까지 입력해줘야 하는지 모르겠어요.ㅜㅜ)

질문2) 이렇게 입력되었을때 제품리스트에서 각 단계별로 선택박스 선택하면 해당 목록이 뿌려지게 하는겁니다.


select * from category c join Product p

on c.cateID=p.parentID 

where c.lang='kr' and c.depth=1 



드롭다운 카테1단계 | 드롭다운 카테2단계 | 드롭다운단 카테3단계 | 드롭다운 카테4단계 |  <=선택박스