团购网站的数据库设计(代码)

2025-11-18 08:37:57

1、 database 团购网站数据库;

(图片为步骤中的其中一个的运行结果)

建表:

用户类别信息表的建立:

       

         create table users(

         userid char(30) primary key not null,

         username char(20) not null,

         userpassword char(20) not null,

         rellyname char(20),

         rellytell char(12) not null,

         rellyadress char(50) not null,

         )

商品类别信息表的建立:

         create table product(

         p_id char(10) primary key not null,

         p_name char(20) not null,

         p_price char(10)not null,

         p_introduce char (50) not null,

         p_team int  not null,

         p_Tprice char(10) not null,

       

         ) 

管理员类别信息表的建立:

         create table manage(

         ma_id int primary key not null,

         ma_name char(20) not null,

         ma_password char(20) not null,

          )

购买类别信息表的建立(订单):

         create table buy(

         userid int not null,

         p_id char(10) not null,

         username char(20) not null,

         )

团购网站的数据库设计(代码)

2、建立视图:

用于查询用户基本信息的视图定义如下:

       create view userview

       as

       select userid,username,userpassword

       from users 

用于查询商品基本信息的视图定义如下:

       create view productview

       as

       select p_id,p_name,p_price,p_introduce,p_Tprice,p_team

       from product 

生活用品:

          create view 生活用品

        as

        select p_id,p_name,p_introduce

        from 团购网站数据库.dbo.product

        where p_introduce='生活用品'

装饰品: 

         create view 装饰品

         as

       select p_id,p_name,p_introduce

       from 团购网站数据库.dbo.product

       where p_introduce='装饰品'

电子产品

   create view 电子产品   as

   select p_id,p_name,p_introduce

    from 团购网站数据库.dbo.product

   where p_introduce='电子产品' 

化妆品

   create view 化妆品

   as

   select p_id,p_name,p_introduce

   from 团购网站数据库.dbo.product

   where p_introduce='化妆品'

餐饮

       create view 餐饮       as

       select p_id,p_name,p_introduce

       from 团购网站数据库.dbo.product

       where p_introduce='餐饮'

学习用具

       create view 学习工具

       as

       select p_id,p_name,p_introduce

       from 团购网站数据库.dbo.product

       where p_introduce='学习工具'

学习用品

       create view 学习用品

       as

       select p_id,p_name,p_introduce

       from 团购网站数据库.dbo.product

       where p_introduce='学习用品'

用于查询订单基本信息的视图定义如下

      use   团购网站数据库

      go

      create view 订单

      as

      select   users.username,rellyname,rellyadress,rellytell,

       buy.p_id,p_name,product.p_Tprice,p_introduce

      from     users join buy on users.userid=buy.userid

             join product  on buy.p_id=product.p_id

用以查询某件商品被多少人所购买了

      

      use 团购网站数据库

      create view 限制

      as     

      select buy.p_id,p_team,COUNT(userid)购买人数

      from buy

      group by p_id,p_team

团购网站的数据库设计(代码)

3、建立触发器

1. 当删除users表中某一用户基本信息时,触发buy表,删除相应的记录

      

      create trigger users_delete

     on  users

     for delete

     as

     delete  from buy

     where buy.userid=(select userid from deleted)

delete from users where userid='25'

2. 当删除product表中某一用户基本信息时,触发buy表,删除相应的记录

    

     create trigger product_delete

     on  product

     for delete

     as

     delete  from buy

     where buy.p_id=(select p_id from deleted)

3. 修改触发器product_delete,实现如下功能,如果商品的价格大于或等于300      元,那么不能被删除

     

     alter trigger product_delete on product

     for delete

     as

     begin

     set nocount on

     if(select p_price from deleted)>=200

     print'商品价格超过300元,不能删除!'

     rollback transaction

     End


delete from product where p_id='1'

4、当商品表中的商品编号改变,buy表中的也随之改变

      create trigger product_update

     on  product

     for update

     as

     update  buy set buy.p_id=(select p_id from inserted)

     where buy.p_id=(select p_id from deleted)

 update product set p_id='34' where p_id='1'

5、当用户表中的商品编号改变,buy表中的也随之改变

    create trigger users_update

     on  users

     for update

     as

     update  buy set buy.userid=(select userid from inserted)

     where buy.userid=(select userid from deleted)

update users set userid='25' where userid='26'

6、当团购人数不符合规定,则不能插入到buy表中    

       

     create trigger buy_insert

     on  buy

     for insert

     as

     if(select count(数量) from buy where p_id =(select p_id from inserted))!=(select p_team from product where p_id=(select p_id from inserted))

     begin

     print'不符合规定,请重新购买!'

     rollback transaction

     End

     例句:insert into buy (userid,p_id,p_Tprice,p_team,数量)

     values('21','6','10','3','1')

团购网站的数据库设计(代码)

4、存储过程

(1)输入一个用户编号,查询有关此用户的一些系统信息

create procedure all_information

@userid char(30)=null

as

if @userid is null

begin

print'请输入一个用户名:'

return

end

else if (not exists(select * from [users ] where users.userid=@userid))

print '用户名不存在,请重新输入!'

else

select distinct users.userid,users.username,users.rellyname,订单.p_name

from users,订单

where users.userid=@userid and 订单.rellyname=[users ].rellyname

group by users.userid,users.username,users.rellyname,订单.p_name

运行的例句:exec  all_information @userid='11'

(2)输入一个商品名,查询有关此商品的一些基本的销售信息

create procedure p_name_information

@p_name char(20)=null

as

if @p_name is null

begin

print'请输入一个商品名:'

return

end

else if (not exists(select * from product where  p_name=@p_name))

print '商品不存在,请重新输入!'

else

select distinct users.userid,users.username,users.rellyname,订单.p_name,订单.p_introduce

from users,订单,product

where product.p_name=@p_name and 订单.rellyname=[users ].rellyname and 订单.p_name=product.p_name and 订单.p_introduce=product.p_introduce

group by users.userid,users.username,users.rellyname,订单.p_name,订单.p_introduce

运行的例句:exec p_name_information @p_name='耳机'

(3)用户增加

CREATE PROCEDURE users_Insert

@userid char(30),

@username char(20),

@userpassword char(20) ,

@rellyname char(20),

@rellytell char(12) ,

@rellyadress char(50)

as

insert into users

values(@userid,@username ,@userpassword ,@rellyname  ,@rellytell ,@rellyadress );

exec users_Insert '26','qqq','qqq','aaa','24134','5654444'

(4)商品增加

CREATE PROCEDURE product_Insert

 @p_id char(10) ,

 @p_name char(20),

 @p_price char(10),

 @p_introduce char (50) ,

 @p_team int ,

 @p_Tprice char(10) ,

as

insert into product

values(@p_id,@p_name,@p_price ,@p_introduce  ,@p_team ,@p_Tprice);

exec  product_Insert 'q','q','q','q','4','q'

团购网站的数据库设计(代码)

5、索引

create clustered index i_product on product(p_name)

团购网站的数据库设计(代码)

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢