数据库表结构设计

Ami121 2009-07-28 12:00:41
需求 :
注册用户表 设备表 下线用户表 下线用户,设备是只有注册用户才能添加的 下线用户具有管理设备,查看设备的权力,但没
有删除的权力,注册用户具有所有权力 。
现在是这样设计的:
注册用户表具有的键值:
用户名,密码,地址,电话,等一些基本信息,
设备表键值:
设备序列号,设备名称 ,设备信息,用户ID对应的是下线用户的ID,
下线用户具有的键值:
管理员ID,用户名,密码,管理权限(管理员,操作员,查看员),而且在这个表中 又将注册用户的用户名密码又添加了一

下线用户--装置关系表
装置ID
下线用户ID

感觉设计不合理 ,希望高手指点一下
...全文
298 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
inthirties 2009-07-28
  • 打赏
  • 举报
回复
你觉得什么地方不合理呀?

我觉得好像也没有什么出问题得地方,

就是
设备表,里用户ID对应的是下线用户的ID,这里不知道你们会不会出现一个设备多个下线用户使用得case,如果出现得话,就不号

下线用户--装置关系表
这个表,是描述得下线用户和设备得关系,那么还记得上面设备表里也有个用户id也是记得下线id,这里是不是有问题,是不是上面得用户id应该是创建这个设备得用户得id呀。

设计需要和你的需求一起进行建模,建模的方法和依据就是我们的数据库设计的里的三个范式。
majy 2009-07-28
  • 打赏
  • 举报
回复
就用一张用户表:
用户名,密码,地址,电话,
用户状态(1: 注册用户 2下线用户 3其他),
管理权限(管理员,操作员,查看员)
Ami121 2009-07-28
  • 打赏
  • 举报
回复
不错 谢谢啦
inthirties 2009-07-28
  • 打赏
  • 举报
回复
管理开发的书,可以看这里
http://groups.google.com/group/inthirties/files
Ami121 2009-07-28
  • 打赏
  • 举报
回复
inthirties
能不能推荐几本好的数据库书籍啊
inthirties 2009-07-28
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 ami121 的回复:]
引用 14 楼 inthirties 的回复:
引用 12 楼 ami121 的回复:
修改了一下 在下线用户--装置关系表 多添加了一个键值装置管理状态
  注册用户表
  用户名,密码,地址,电话,等一些基本信息,
  设备表:
  设备序列号,设备名称 ,设备信息,用户ID对应的是下线用户的ID,
  下线用户具有的键值:
  管理员ID,用户名,密码,管理权限(管理员,操作员,查看员),而且在这个表中 又将注册用户的用户名密码又添加了一
  次
  下线用户--装置关系表
  装置ID
  下线用户ID
装置管理状态 创建,管理,查看三种状态


  下线用户--装置关系表
  装置ID
  下线用户ID
  如果考虑到你这个应用的话
加个主键id最好。

至于状态或者操作历史,都可以根据你们的需求对这个表扩展或者是分子表来做选择,还是根据上面提到的,数据库设计范式就是你的指导,有了模型,然后在考虑冗余和性能的矛盾问题。

感觉这个需求的主要问题 是用户设置方面的合理性 如何处理好注册用户,下线用户以及他们之间的关系 整个数据库的设计也就不难了
[/Quote]

是的,数据库建模式过程上是简单的,但是分析有效模型以及各模型的之间的关系这个是需要你的经验和对业务的熟悉程度的积累的。
Ami121 2009-07-28
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 inthirties 的回复:]
引用 12 楼 ami121 的回复:
修改了一下 在下线用户--装置关系表 多添加了一个键值装置管理状态
注册用户表
用户名,密码,地址,电话,等一些基本信息,
设备表:
设备序列号,设备名称 ,设备信息,用户ID对应的是下线用户的ID,
下线用户具有的键值:
管理员ID,用户名,密码,管理权限(管理员,操作员,查看员),而且在这个表中 又将注册用户的用户名密码又添加了一

下线用户--装置关系表
装置ID
下线用户ID
装置管理状态 创建,管理,查看三种状态


下线用户--装置关系表
装置ID
下线用户ID
如果考虑到你这个应用的话
加个主键id最好。

至于状态或者操作历史,都可以根据你们的需求对这个表扩展或者是分子表来做选择,还是根据上面提到的,数据库设计范式就是你的指导,有了模型,然后在考虑冗余和性能的矛盾问题。
[/Quote]
感觉这个需求的主要问题 是用户设置方面的合理性 如何处理好注册用户,下线用户以及他们之间的关系 整个数据库的设计也就不难了
inthirties 2009-07-28
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 ami121 的回复:]
修改了一下 在下线用户--装置关系表 多添加了一个键值装置管理状态
注册用户表
用户名,密码,地址,电话,等一些基本信息,
设备表:
设备序列号,设备名称 ,设备信息,用户ID对应的是下线用户的ID,
下线用户具有的键值:
管理员ID,用户名,密码,管理权限(管理员,操作员,查看员),而且在这个表中 又将注册用户的用户名密码又添加了一

下线用户--装置关系表
装置ID
下线用户ID
装置管理状态 创建,管理,查看三种状态
[/Quote]

下线用户--装置关系表
装置ID
下线用户ID
如果考虑到你这个应用的话
加个主键id最好。

至于状态或者操作历史,都可以根据你们的需求对这个表扩展或者是分子表来做选择,还是根据上面提到的,数据库设计范式就是你的指导,有了模型,然后在考虑冗余和性能的矛盾问题。
xjwy 2009-07-28
  • 打赏
  • 举报
回复
学习
Ami121 2009-07-28
  • 打赏
  • 举报
回复
修改了一下 在下线用户--装置关系表 多添加了一个键值 装置管理状态
注册用户表
用户名,密码,地址,电话,等一些基本信息,
设备表:
设备序列号,设备名称 ,设备信息,用户ID对应的是下线用户的ID,
下线用户具有的键值:
管理员ID,用户名,密码,管理权限(管理员,操作员,查看员),而且在这个表中 又将注册用户的用户名密码又添加了一

下线用户--装置关系表
装置ID
下线用户ID
装置管理状态 创建,管理,查看三种状态
Ami121 2009-07-28
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 inthirties 的回复:]
什么表和什么表是多对多的呀。

设备表--下线用户关系表
这个当然是多对多的,


设备表-注册用户表
这个是多对一的。 一个注册用户可以创建多个设备,而一个设备只有一个创建者。
[/Quote]
对 你说的没错
那我这个下线用户--装置关系表
下线用户ID
设备ID 就应该被创建
majy 2009-07-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ami121 的回复:]
都放在一张表不太合适吧
注册用户有十多个键值 需要填写的
而下线用户的键值就只有几个需要填写的
难道在添加下线用户时把其他键值都空着
[/Quote]

用一张表方便维护,也方便统计,字段空着有什么关系,他就是空的嘛。
inthirties 2009-07-28
  • 打赏
  • 举报
回复
什么表和什么表是多对多的呀。

设备表--下线用户关系表
这个当然是多对多的,


设备表-注册用户表
这个是多对一的。 一个注册用户可以创建多个设备,而一个设备只有一个创建者。
Ami121 2009-07-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ami121 的回复:]
引用 5 楼 inthirties 的回复:
设备表,里用户ID对应的是下线用户的ID,

这里有问题了,应该是注册用户id,而不是下线用户ID,

其他的好像没有什么问题了。

哦 写错了 是注册用户ID
[/Quote]
不对 应该是下线用户ID
因为这两个表是多对多的关系在 而且注册用户的信息也写入到了下线用户表中 设备表与下线用户之间在建立一个表
设备表--下线用户关系表
设备ID
下线用户ID

inthirties 2009-07-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ami121 的回复:]
引用 5 楼 inthirties 的回复:
设备表,里用户ID对应的是下线用户的ID,

这里有问题了,应该是注册用户id,而不是下线用户ID,

其他的好像没有什么问题了。

哦 写错了 是注册用户ID
[/Quote]

其他的地方,看不出有什么大的逻辑问题,

你觉得有问题是哪个地方?你自己可以提出来,大家一起讨论讨论。
Ami121 2009-07-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 inthirties 的回复:]
设备表,里用户ID对应的是下线用户的ID,

这里有问题了,应该是注册用户id,而不是下线用户ID,

其他的好像没有什么问题了。
[/Quote]
哦 写错了 是注册用户ID
inthirties 2009-07-28
  • 打赏
  • 举报
回复

设备表,里用户ID对应的是下线用户的ID,

这里有问题了,应该是注册用户id,而不是下线用户ID,

其他的好像没有什么问题了。
Ami121 2009-07-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 inthirties 的回复:]
你觉得什么地方不合理呀?

我觉得好像也没有什么出问题得地方,

就是
设备表,里用户ID对应的是下线用户的ID,这里不知道你们会不会出现一个设备多个下线用户使用得case,如果出现得话,就不号

下线用户--装置关系表
这个表,是描述得下线用户和设备得关系,那么还记得上面设备表里也有个用户id也是记得下线id,这里是不是有问题,是不是上面得用户id应该是创建这个设备得用户得id呀。

设计需要和你的需求一起进行建模,建模的方法和依据就是我们的数据库设计的里的三个范式。

[/Quote]
一个用户可能对应多个多个设备 一个设备可以被多个下线用户管理 查看 但是只有注册用户具备设备的修改删除权限
Ami121 2009-07-28
  • 打赏
  • 举报
回复
都放在一张表不太合适吧
注册用户有十多个键值 需要填写的
而下线用户的键值就只有几个需要填写的
难道在添加下线用户时把其他键值都空着
下载了一大堆的免费文档 我也贡献一个我自己写的PowerDesigner16 5的使用文档 这个是公司领导让我自己写来做使用指导用的 写的仓促 多有不恰当的地方 望大家见谅 1 这个是16 5的版本 2 这个是以oralce11g为模板 3 文档目录如下: PowerDesigner 16 5 指导 1 一 安装 3 二 新建模板步骤 这里以Oracle11g数据库为例 3 1 新建Model 3 2 Modle设置 3 3 模板设置 4 4 右侧工具条 5 5 新建测试包 6 6 配置 6 6 1进入模板 6 6 2新建 6 6 3修改 7 6 4添加注释 7 6 5属性设置 8 6 5 1 8 6 5 2 9 6 5 3 9 6 5 4 9 6 6添加关系 10 6 7关系设置 10 6 8模板保存 12 6 9查看模板 12 三 模板导入脚本 12 1 打开Change Current DRMS 12 2 删除多余双引号 13 3 生成脚本 13 四 配置数据库 15 1 点击Database >Configure Connections 15 2 选择第三个系统数据根源 17 3 选择Oracle in OraDb11g hom1 选择下一步 然后点击完成 17 4 数据源配置 18 5 配置成功 19 五 反向工程生成模板 20 1 按照二 1和二 2生成一个空模板 20 2 选择Database >Update Model from Database 20 3 选择数据源 20 4 数据源配置 21 5 选择反向工程导出对象 22 6 可以看到反向工程自动生成的模板 即代操作工程 23 六 生成HTML文档 24 1 点击Report >Generate Report 24 2 配置完成 点击确认即可 24 3 打开html文档 应该是下图格式 25">下载了一大堆的免费文档 我也贡献一个我自己写的PowerDesigner16 5的使用文档 这个是公司领导让我自己写来做使用指导用的 写的仓促 多有不恰当的地方 望大家见谅 1 这个是16 5的版本 2 这个是以oralce11g为模板 3 文档 [更多]

17,383

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧