明日电子商城的数据建模疑问
发表在JavaWeb图书答疑 2012-08-10
是否精华
版块置顶:
各位老师好!我刚买了《实战突击:Java项目开发案例整合》,正在学习第八章《明日电子商城》。
我看到源码中的powerdesigner中的数据库建模文件,有2点疑问不解:
1、在光盘中给出的类图中,我发现tb_member(会员)表和订单表tb_order并无关联,与tb_goods商品表也无关联。但我自己的理解,会员与订单、会员与商品均应该是1对多的关系啊。不知道为什么忽略这些1对多的关系?

2、我看到视图V_Member的代码是:
SELECT dbo.tb_Member.ID, dbo.tb_Member.TrueName, dbo.tb_Member.city,
      dbo.tb_Member.address, dbo.tb_Member.postcode, dbo.tb_Member.username,
      dbo.tb_Member.CardNO, dbo.tb_Member.CardType, dbo.tb_Member.grade,
      dbo.tb_Member.Amount, dbo.tb_Member.Tel, dbo.tb_Member.Email,
      dbo.tb_rebate.rebate
FROM dbo.tb_Member INNER JOIN
      dbo.tb_rebate ON [font color=#FF0000]dbo.tb_Member.grade = dbo.tb_rebate.grade[/font]

上面红色部分,是我疑问的地方。在tb_Member的表中grade字段是 int 类型,但在tb_rebate中grate字段却是varchar(20) 的类型。
为什么会用类型不一致的字段来连接表呢?是否是建模文件中字段设置有误?
我在网上看了许多文章,均未涉及到上面问题。
谢谢!
分享到:
精彩评论 3
无语_mrkj
学分:3155 LV11
2012-08-14
沙发
在SQL Server 创建视图,可以连接两个不同类型的列,但是其中一个列必须转换成另一个列的类型,级别低的会被转换成高级别的类型。
火烧云
学分:0 LV1
TA的每日心情
无语
2021-01-18 19:52:37
2012-08-14
板凳
[FIELDSET][LEGEND]引自:1楼[/LEGEND]
在SQL Server 创建视图,可以连接两个不同类型的列,但是其中一个列必须转换成另一个列的类型,级别低的会被转换成高级别的类型。
[/FIELDSET]

回复:  
我想知道,既然要创建两个表连接,为什么不把两个表的grade类型都设置成int或varchar,这样统一起来岂不是更好么?
为什么设计成类型不同的列,有什么明显好处或优点吗?

其次,因为我以前接触电子订单系统的数据库时,一般都会考虑会员与订单存在一对多的关系,但本系统为什么不考虑这个呢?现在是tb_member(会员)表和订单表tb_order并无关联,与tb_goods商品表也无关联。

再次感谢明日科技的老师
无语_mrkj
学分:3155 LV11
2012-08-20
地板
由于该程序的开发人员现在已经不在我公司了,所以他当时的想法,我也不太清楚。我个人认为还是设置为统一的类型比较好。也许他当时有其他的想法。
另外,通常情况下,于会员与订单都是存在一对多的关系,在本程序中,虽然没有在设计数据库时创建对应的关系,但是在程序中已经遵循了该原则。
首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照