首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

请问一个关于数据库设计的有关问题

2013-06-19 
请教一个关于数据库设计的问题一件商品有三种规格(或三种以下),例如:餐巾纸,1箱=4盒=20包。需求是商品的规

请教一个关于数据库设计的问题
一件商品有三种规格(或三种以下),例如:餐巾纸,1箱=4盒=20包。
需求是商品的规格和数量可配置,录入时可选择任意规格,页面显示最小规格。
请问如何进行数据库设计? 数据库?设计
[解决办法]

--规格
create table tt1( a number,b varchar2(10),ca varchar2(10),num number);
insert into tt1 values(1,'箱',2,4);
insert into tt1 values(2,'盒',3,20);
insert into tt1 values(3,'包',null,1);

--录入数据
create table tt2(pname varchar2(10),num number,unit varchar2(10));
insert into tt2 values('a',10,1);
insert into tt2 values('b',11,2);
insert into tt2 values('c',12,3);
insert into tt2 values('c',13,1);

--前台页面显示
with t as
 (select a, power(10, Sum(Log(10, num))) num
    from (select connect_by_root(a) a, num from tt1 connect by a = prior ca)
   group by a)
select pname, tt2.num * t.num num from tt2 join t on tt2.unit = t.a;

[解决办法]
表A:商品类型、规格类型(箱、盒或者包)、最小规格(该规格对应的最小规格数)
  比如:餐巾纸  箱    20
        餐巾纸 盒    5
        餐巾纸 包    1
表B: 商品类型、规格类型、数量
比如: 餐巾纸  箱  10
       餐巾纸 盒  5
在页面显示就好办了 根据商品类型和规格类型 表B中数量*表A的最小规格

热点排行