精华内容
下载资源
问答
  • 数据库设计案例
    万次阅读
    2018-03-08 17:04:28

    现有菜单:       

    如果要是实现:  A用户登录后显示菜单为一、二

                           B用户登录后显示菜单为二、三

                           C用户登录后显示菜单为一、二、三

                           D用户登录后显示菜单为一、二、三、四

    (1)进行相关的模型设计:

    用户信息:  用户编号、用户姓名

    菜单:菜单编号、菜单名称

    关联表:用户编号、菜单编号

    用户信息表yonghu

    字段名

    数据类型

    长度

    说明

    描述

    Yhbh

    Number

    10

    不空,主键

    用户编号

    yname

    Varchar2

    10

    不空

    用户姓名


    菜单信息表 caidan

    字段名

    数据类型

    长度

    说明

    描述

    Caib

    Number

    8

    不空,主键

    菜单编号

    cname

    Varchar2

    8

    不空

    菜单名称


    关联表 guanlian

    字段名

    数据类型

    长度

    说明

    描述

    Yhbh

    Number

    10

    不空,主键

    用户编号

    Caib

    Number

    8

    不空,主键

    菜单编号


    (2)实现至数据库,进行数据的添加,

    create table yonghu(

    Yhbh  number(10) not null,

    yname varchar2(10) not null

    );

          alter table yonghu add constraint pk_yhbh primary key(Yhbh);

    create table caidan(

    caib number(8) not null,

    cname  varchar2(8) not null

    );

         alter table caidan add constraint pk_caib primary key(caib);

    create table guanlian(

    yhbhNumber(10) ,

    caibNumber(8) not null

    );

        alter table guanlian add constraint pk_gl_yhbh primary key(yhbh);

        alter table guanlian add constraint up_gl_caib unique(caib);

    外键:alter table guanlian add constraint wj_yhbh foreign key

    (yhbh) references yonghu(yhbh);

    外键: alter table guanlian add constraint wj_caib foreign key

    (caib) references caidan(caib);

    添加:

    insert into caidan values(10,'菜单一 ' );

    insert into caidan values(20,'菜单二 ' );

    insert into caidan values(30,'菜单三 ' );

    insert into caidan values(40,'菜单四 ' );


    insert into yonghu  values(001,'奥利奥 ');                

    insert into yonghu  values(002,'水果沙拉 ');                

    insert into yonghu  values(003,'火龙果 ');                

    insert into yonghu  values(004,'咩咩咩 ');    

        

    insert into guanlian values(001,10);

    insert into guanlian values(001,20);

    insert into guanlian values(002,20);

    insert into guanlian values(002,30);

    insert into guanlian values(003,10);

    insert into guanlian values(003,20);

    insert into guanlian values(003,30);

    insert into guanlian values(004,10);

    insert into guanlian values(004,20);

    insert into guanlian values(004,30);

    insert into guanlian values(004,40);

    (3)并编写出查询用户A的可操作菜单的语句。

    select y.yhbh,c.cname from yonghu y left join guanlian g on y.yhbh=g.yhbh

    left join caidan c on g.caib=c.caib;


    延伸:

    1、编写触发器,要求在删除用户的时候,将用户和菜单的关联关系也进行删除。

    当添加用户时,默认给用户设置’一’的菜单。

    create or replace trigger tg_yonghu
    after
    delete or insert
    on yonghu
    for each row
    begin
     if deleting then
       delete from guanlian where yhbh=:old.yhbh;
     elsif inserting then
         insert into guanlian values(:new.yhbh,10);
     end if;
    end;

    2、给用户表添加密码字段,写一个存储过程,名称为getLoginResult,通过传入用户名和密码,调用存储过程时,

    如果用户登录成功,则显示登陆结果为1,并显示该用户的菜单信息;

    如果用户登录失败,则显示登陆结果为2,并输出'用户名或者密码错误';

    create or replace procedure getLoginResult
         (gl_yname yonghu.yname%type,gl_mima yonghu.mima%type,gl_out out number)
    as
    cursor c_yb is select y.yname,c.cname from yonghu y 
                      left join guanlian g on y.yhbh=g.yhbh
                      left join caidan c on g.caib=c.caib;
    cn number;
    begin  
     select count(*) into cn from yonghu where yname=gl_yname and mima=gl_mima;
    if cn=0  then
         gl_out:=2;
       dbms_output.put_line('用户名或密码错误');
    elsif cn=1 then
         gl_out:=1;
     for a in c_yb loop   
        dbms_output.put_line('菜单:'||a.cname);
     end loop;
    end if;
    end;

    declare
    gl_out number;
    begin
    getLoginResult('奥利奥 ','123',gl_out);
    dbms_output.put_line(gl_out);
    end;


    更多相关内容
  • 简单数据库案例,方便阅读理解,网上购物系统前台的用户共分两类:一类是注册用户(正式用户),这类用户有基本的信息,可以对自己的信息进行查看与修改,可以随时实现网上购物。当用户在网站所购商品总金额达一定数量...
  • 数据库设计案例数据库设计案例
  • 学生选课管理系统的需求分析 学生选课管理系统的ER图 学生选课管理系统的关系数据库模式 学生选课管理系统数据库的建立
  • 数据库设计案例

    2018-07-20 18:02:18
    数据库设计是完成一个系统很重要的一步。下面来介绍一下数据库设计的过程。数据库设计分6个阶段:需求分析、概念设计、逻辑设计、物理设计、数据库实施、数据库运行与维护
  • 数据库设计案例之一数据库设计案例之一
  • 数据库设计案例-酒店管理系统..docx数据库设计案例-酒店管理系统..docx数据库设计案例-酒店管理系统..docx数据库设计案例-酒店管理系统..docx数据库设计案例-酒店管理系统..docx数据库设计案例-酒店管理系统..docx...
  • 数据库设计案例-酒店管理系统..pdf数据库设计案例-酒店管理系统..pdf数据库设计案例-酒店管理系统..pdf数据库设计案例-酒店管理系统..pdf数据库设计案例-酒店管理系统..pdf数据库设计案例-酒店管理系统..pdf数据库...
  • powerdesigner数据库设计案例(附powerdesigner软件包).zip
  • 数据库设计案例.doc

    2022-06-13 06:08:27
    数据库设计案例
  • [新版]数据库设计案例
  • 客户关系管理数据库设计案例.docx
  • Oracle数据库设计案例研究.pdf
  • 包括DZ的Ucenter和UcenterHome的数据库,所以这段时间话了近5个小时的时间好好的整理了下数据库方面的基本内容,配合现有的框架来实现快捷的数据库设计,来满足目前项目的需求 参考的数据库文档主要有:目前国内的...
  • 数据库设计案例.pdf

    2021-10-05 19:36:33
    数据库设计案例.pdf
  • 数据库设计案例之一【精品-ppt】
  • 学生宿舍管理系统数据库设计案例.doc
  • 数据库设计案例-酒店管理系统.doc
  • 2014年学生宿舍管理系统数据库设计案例
  • 数据库设计案例--图书管理系统.pptx
  • 数据库设计案例--图书管理系统.ppt
  • 服装销售数据库设计案例报告毕业论文.doc
  • 数据库设计案例分析

    2012-06-23 08:59:33
    数据库设计案例分析,帮助你快速开发。
  • 选课系统数据库设计案例sql
  • 需求分析要求应用系统的开发人员按照系统的思想,根据收集的资料,对系统目标进行分析,对业务的信息需求、功能需求以及管理中存在的问题等进行分析,抽取本质的、整体的需求,为设计一个结构良好的数据库应用系统的...
  • MySQL数据库设计-案例

    2022-05-11 17:30:41
    数据库设计案例

    大家好,我是忘鱼。分享一下数据库设计(案例)

     

    目录

    一、案例      

     二、代码

    三、总结


    一、案例      

         如下进行数据库设计。这是黑马上的一道练习题。

     二、代码

    drop table if EXISTS music;
    drop table if EXISTS song;
    drop table if EXISTS Review;
    drop table if EXISTS user1;
    CREATE TABLE music -- 专辑 
    (
    title varchar ( 32 ),-- 专辑名,
    alias varchar ( 32 ),-- 专辑别名,
    image varchar ( 64 ),-- 封面图片,
    style varchar ( 8 ),-- 流派(如经典、流行、民谣、电子等),
    type varchar ( 4 ),-- 类型(专辑、单曲等),
    med varchar ( 4 ),-- 介质( CD、黑胶、数字等),
    publish_time date,-- 发行时间,
    publisher varchar ( 16 ),-- 出版者,
    numbertiny int,-- 唱片数,
    barcodebig int,-- 条形码,
    summary varchar ( 1024 ),-- 简介,
    artist varchar ( 16 ),-- 艺术家,
    id int  primary key auto_increment-- 编号(唯一)
    );
    
    
    CREATE TABLE song -- 曲目
    (
    song_id int,
    CONSTRAINT fk_song_music FOREIGN KEY (song_id) REFERENCES music(id),
    name varchar(32),-- 歌曲名
    serial_numbertiny int,-- 歌曲序号
    id int  primary key auto_increment -- 编号(唯一)
     );
     
     CREATE TABLE Review(
     content varchar(256),-- 评论内容
     ratingtiny int,-- 评分(1~5)
     review_time datetime, -- 评论时间 
    music_id int,
    user1_id int,
     CONSTRAINT fk_review_music FOREIGN key (music_id) REFERENCES music(id),
     CONSTRAINT fk_review_user1 FOREIGN key (user1_id) REFERENCES user1(id)
     );
     
     CREATE TABLE user1(
     id int PRIMARY key auto_increment,
     username varchar(16),#用户名(唯一)
     image varchar(64),#用户头像图片地址
     signature varchar(64),#个人签名,例如(万般各所是 一切皆圆满)
     nickname varchar(16)  #用户昵称idint用户编号(主键)
     );
     
     #一对多,多的添加外键。多对多,引入第三方表。一对一引入第三方表 UNIQUE 声明即可
     
     

    三、总结

          虽然很水,还是要坚持写博客。

    展开全文
  • 对数据库的设计讲解的非常详细,注重实战,是数据库设计非常好的书

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 172,216
精华内容 68,886
关键字:

数据库设计案例