2013-05-13 106 views
-3

嗨,我正在设计一个网站,其中将列出13,000电子产品,首先我想能够通过我已经创建的侧导航导航,我会存储的类别这些电子零件在数据库中?如果是的话,什么是存储类别的最佳方式?因为我有一些产品具有3级的类别例如产品类别和子类别

  1. 半导体
  2. 二极管
  3. TRANSORB。

正如你所看到的,我对如何正确地在数据库中做到这一点感到困惑。

回答

0

有很多方法可以解决这个问题。我在暗示这一点。首先创建两个表格

CREATE TABLE ITEM(
ITEM_KEY VARCHAR(20) NOT NULL, 
NAME VARCHAR(255), 
TYPE_CODE VARCHAR(50) NOT NULL, 
CONSTRAINT ITEM_TYPECODE_CK CHECK(TYPE_CODE IN('ITEM','CATEGORY')), 
CONSTRAINT ITEM_ITEMKEY PRIMARY KEY(ITEM_KEY) 
); 

表格项目用于产品和类别。

CREATE TABLE ITEMLINK(
ITEM_KEY VARCHAR(20) NOT NULL, 
LINKED_ITEM_KEY VARCHAR(20) NOT NULL, 
TYPE VARCHAR(50) NOT NULL, 
CONSTRAINT ITEMLINK_ITEMKEY_LINKEDITEMKEY 
      PRIMARY KEY(ITEM_KEY, LINKED_ITEM_KEY,TYPE), 
CONSTRAINT ITEMLINK_TYPE_CK CHECK(TYPE IN('CIL','CCL')) 
); 

项目链接表用于层次结构。项目键是父项,链接项键是子项。 CIL表示分类项链接和CCL表示分类分类链接。

INSERT INTO ITEM (ITEM_KEY, "NAME", TYPE_CODE) VALUES ('IT01', 'Transorb', 'ITEM'); 
INSERT INTO ITEM (ITEM_KEY, "NAME", TYPE_CODE) VALUES ('CT01', 'Semiconductors', 'CATEGORY'); 
INSERT INTO ITEM (ITEM_KEY, "NAME", TYPE_CODE) VALUES ('CT02', 'Diode', 'CATEGORY'); 

INSERT INTO RWITEMLINK (ITEM_KEY, LINKED_ITEM_KEY, "TYPE") VALUES ('CT01', 'CT02', 'CCL'); 
INSERT INTO RWITEMLINK (ITEM_KEY, LINKED_ITEM_KEY, "TYPE") VALUES ('CT02', 'IT01', 'CIL'); 

现在您可以迭代ItemLink表来填充列表。