数据库建表逻辑详解:用户与角色表设计与触发器

需积分: 10 1 下载量 34 浏览量 更新于2024-09-10 收藏 2KB TXT 举报
本文档主要介绍了在Oracle数据库中创建表的基本逻辑,包括设计表结构、序列生成器以及触发器的使用。我们首先探讨了`SYS_USER`表的设计,它包含以下字段: 1. `idnumber(11)`: 主键,使用整数类型,不允许为空,长度为11位。 2. `LOGINNAME`: 用户名,VARCHAR2类型,长度为20个字符,不能为空。 3. `PASSWORD`: 密码,VARCHAR2类型,长度为20个字符,同样不能为空。 4. `REALNAME`: 真实姓名,VARCHAR2类型,长度为20个字符,不能为空。 5. `ADDRESS`: 地址,VARCHAR2类型,最大长度为200个字符。 6. `TELPHONE`, `MOBILE`, `EMAIL`, `QQ`, 和 `WEB`: 分别代表电话、手机、电子邮件、QQ号和网站,都是VARCHAR2类型,各有特定长度限制。 7. `PAGESTYLE`: 页面风格,VARCHAR2类型,长度为20个字符。 8. `ENABLED`: 表示用户状态,NUMBER类型,3位,可能包含0(禁用)或1(启用)。 9. `ISONLINEnumber`: 表示在线状态,NUMBER类型,3位。 10. `LASTLOGINTIME`, `LASTLOGINIP`, 和 `LASTLOGINTYPE`: 分别表示最后登录时间、IP地址和登录方式,均为VARCHAR2类型。 接着,文档提到为`SYS_USER`表创建了一个名为`seq_sys_user`的序列,设置了最小值为1,最大值为99999999,初始值为1,步长为1,并且设置了nocache选项,以提高性能。此外,还创建了一个触发器`trg_SYS_USER_id`,在插入新行之前自动为`id`字段生成下一个序列值。 类似地,文档中还有`SYS_ROLE`表的定义,包括: - `idnumber(11)`: 主键,整数类型,不能为空。 - `name`: 角色名称,VARCHAR2类型,长度为50个字符,不能为空。 - `typenumber(3)`: 角色类型,NUMBER类型,3位,不能为空。 - `ENABLED`: 角色状态,与`SYS_USER`表中的`ENABLED`字段类似。 - `DESCRIPT`: 角色描述,VARCHAR2类型,最大长度为500个字符。 `SYS_ROLE`表也拥有一个自增序列`seq_sys_role`,其设置与`seq_sys_user`类似。同时,文档展示了为`SYS_ROLE`表创建的触发器`trg_SYS_ROLE_id`,在插入新角色时自动分配`id`。 总结来说,本篇文档详细解释了如何在Oracle数据库中创建表及其关键字段,使用了序列生成主键,并利用触发器确保主键的唯一性和自动填充。这对于理解和实践Oracle数据库管理至关重要。