=========== 面向对象是否真的适合于关系型数据库的应用 =============

愚者只看星不看答案 2019-05-12 07:52:27
绝非标题党!!!

让你设计一个类库,让别人调用,其中有一个 User 类,它对应数据库中的 User 表,它有以下字段,这里以 SQL Server举例,
所有字段都是非 NULL,

Id int
UserName nvarchar(256)
ZipCode nchar(6)
PhoneNumber nchar(11)
Comment nvarchar(4000)

假设这个应用是用于银行,Comment 是指用户的信用记录,或是信用报告

假设你的 User 类的属性与上述完全相同

User 类

Id
UserName
ZipCode
PhoneNumber
Comment

假设类需要以下方法
GetAllUsers 获取所有用户
FindUsersByZipCode 查找指定 ZipCode 的所有用户
GetUserById 获取指定的用户

我的问题是,上述三个方法中,你返回的 User 类,是否都包含 User 表中的 Comment 字段的值?
...全文
108 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
@鸣鸣Amadues 对,可以这样做。 但是,如果是一个列表界面,这个界面显示 100个用户的消息,就意味着你要查数据库 100 次,再加上本身的1次查询,一共是101次。。。
开拓者Amadues 2019-05-12
  • 打赏
  • 举报
回复
引用 4 楼 愚者只看星不看答案 的回复:
[quote=引用 3 楼 鸣鸣Amadues 的回复:] [quote=引用 2 楼 愚者只看星不看答案 的回复:] [quote=引用 1 楼 鸣鸣Amadues 的回复:] 你想有就有,不想有就可以不取comment字段。 对象和表都是数据的载体,只不过对象可以嵌套对象,关系型数据库表只能是二维的。
你来设计这个类,表中有这个Comment,你也不知道别人调用时,会不会用到,所以一般情况下,你得有 但问题是,如果是在一个列表界面中,一页 显示 100个用户的信息,但仅仅需要 Id ,UserName ,则 Comment 的查询白白浪费了资源 。[/quote] 查不查是你自己可以控制的,浪费了什么资源?[/quote] 你在写类库,你不知道界面上会不会用到 Comment 属性对不对 ? 你的类方法中返回的 User 的 Comment 属性是不是都要从表中查询 出些字段来,因为你根本不知道用户会不会用到对不对?[/quote] 你可以把字段设计在类里,但是查询的时候不去查这个字段,这样字段就是个空值。
  • 打赏
  • 举报
回复
引用 3 楼 鸣鸣Amadues 的回复:
[quote=引用 2 楼 愚者只看星不看答案 的回复:] [quote=引用 1 楼 鸣鸣Amadues 的回复:] 你想有就有,不想有就可以不取comment字段。 对象和表都是数据的载体,只不过对象可以嵌套对象,关系型数据库表只能是二维的。
你来设计这个类,表中有这个Comment,你也不知道别人调用时,会不会用到,所以一般情况下,你得有 但问题是,如果是在一个列表界面中,一页 显示 100个用户的信息,但仅仅需要 Id ,UserName ,则 Comment 的查询白白浪费了资源 。[/quote] 查不查是你自己可以控制的,浪费了什么资源?[/quote] 你在写类库,你不知道界面上会不会用到 Comment 属性对不对 ? 你的类方法中返回的 User 的 Comment 属性是不是都要从表中查询 出些字段来,因为你根本不知道用户会不会用到对不对?
开拓者Amadues 2019-05-12
  • 打赏
  • 举报
回复
引用 2 楼 愚者只看星不看答案 的回复:
[quote=引用 1 楼 鸣鸣Amadues 的回复:] 你想有就有,不想有就可以不取comment字段。 对象和表都是数据的载体,只不过对象可以嵌套对象,关系型数据库表只能是二维的。
你来设计这个类,表中有这个Comment,你也不知道别人调用时,会不会用到,所以一般情况下,你得有 但问题是,如果是在一个列表界面中,一页 显示 100个用户的信息,但仅仅需要 Id ,UserName ,则 Comment 的查询白白浪费了资源 。[/quote] 查不查是你自己可以控制的,浪费了什么资源?
  • 打赏
  • 举报
回复
引用 1 楼 鸣鸣Amadues 的回复:
你想有就有,不想有就可以不取comment字段。 对象和表都是数据的载体,只不过对象可以嵌套对象,关系型数据库表只能是二维的。
你来设计这个类,表中有这个Comment,你也不知道别人调用时,会不会用到,所以一般情况下,你得有 但问题是,如果是在一个列表界面中,一页 显示 100个用户的信息,但仅仅需要 Id ,UserName ,则 Comment 的查询白白浪费了资源 。
开拓者Amadues 2019-05-12
  • 打赏
  • 举报
回复
你想有就有,不想有就可以不取comment字段。 对象和表都是数据的载体,只不过对象可以嵌套对象,关系型数据库表只能是二维的。

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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