面向对象的问题

hornbills 2011-08-05 01:30:07
系统可以让客户和员工登录,但客户和员工的信息差异很大。

数据库设计三个表

客户表 tb_customer(ID,UserID,CompanyName,Contact)
员工表 tb_employee(ID,UserID,RealName,Age)
用户表 tb_user(ID,UserName,PassWord)

我发现一个难题,当一个用户登录时,我无法获取这个用户是客户还是员工

难道让我在客户表和员工表查UserID,用IF判断?

如果用面向对象的思想,如何安排这些对象呢?
...全文
152 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuxueliao 2011-08-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wxr0323 的回复:]
客户表 tb_customer(ID,UserID,CompanyName,Contact)
员工表 tb_employee(ID,UserID,RealName,Age)
用户表 tb_user(ID,UserName,PassWord,UerType)

还可以通过type家在权限

登陆的时候取Type.然后进行跳转 不同页面

可以看看简单的权限设计

参考
[/Quote]

在刚开始的时候预留一个这样的字段 是很重要的
小D2013 2011-08-05
  • 打赏
  • 举报
回复
加UserType
anyong3 2011-08-05
  • 打赏
  • 举报
回复
用户是父类,客户和员工是子类。

用户有个标志UserType用来标注是什么类型的用户

如果一个用户要么是员工要么是客户的话
数据库设计的话只需要两个表:客户,员工表
一个视图:用户
两表的主键设计规则不能有重复,而且能通过简单判断区分(例如KH001,YG001这样)

如果一个用户可以是员工也可以是客户的话
数据库设计的话需要三个表:客户,员工,用户表
其中用户和客户,员工有外键关系。
登录时候判断有员工表就是员工,有客户表就是客户,都有就得跳出选择框让用户选择当前身份。
truecoffeefox 2011-08-05
  • 打赏
  • 举报
回复
用户表价格usertype列最省事了
zzz9413 2011-08-05
  • 打赏
  • 举报
回复
面向对象时,三个表是对应三个对象集合吧?
比如客户对象一般是这样customer.ID,customer.UserID,customer.CompanyName
员工对象到程序里employee.ID,employee.UserID,employee.CompanyName
难道登录的时候没有获得customer、employee这样的对象?那怎么叫面向对象?
hztltgg 2011-08-05
  • 打赏
  • 举报
回复
面向对象当然是客户和员工继承用户,但关系数据库没有继承的概念,只能用你的方法或者空出字段来模拟
  • 打赏
  • 举报
回复
登陆时加一个flag标志
作为判断依据
hornbills 2011-08-05
  • 打赏
  • 举报
回复
我以前的设计是空起来的,会有好多问题..
hornbills 2011-08-05
  • 打赏
  • 举报
回复
再请教一下

面向对象思考问题时,这三个对象,客户,员工,用户之间应该建立什么关系呢?

qingYun1029 2011-08-05
  • 打赏
  • 举报
回复
有必要用三张表吗???

将各自没有的信息空起来不就行了???

haiziguo 2011-08-05
  • 打赏
  • 举报
回复
迟了 还是顶子夜吧
vrhero 2011-08-05
  • 打赏
  • 举报
回复
面向对象的思想根本就不存在数据库,更不存在二维关系表...

先把你的业务逻辑理清楚,别去想什么ID什么IF...然后去搜索RBAC的概念和模型...

ps:ASP.NET中的Membership框架就是RBAC模型...
_老吴 2011-08-05
  • 打赏
  • 举报
回复
第一,你可以安id区分,即将ID的长度设置为不同长度
第二,你可以在登录界面让登录者选择用户类型
haiziguo 2011-08-05
  • 打赏
  • 举报
回复
能不能在usr表中加个flag字段呢
子夜__ 2011-08-05
  • 打赏
  • 举报
回复
客户表 tb_customer(ID,UserID,CompanyName,Contact)
员工表 tb_employee(ID,UserID,RealName,Age)
用户表 tb_user(ID,UserName,PassWord,UerType)

还可以通过type家在权限

登陆的时候取Type.然后进行跳转 不同页面

可以看看简单的权限设计

参考
赢在执行 2011-08-05
  • 打赏
  • 举报
回复
在你的表中加入角色,比如1表示客户,2表示员工,3表示用户……你登陆的时候判断角色。

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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