初学感悟-1-数据库乱谈

提笔前已经想了近30分钟,甚至连想所表达的个人观点都没总结出来,也许就是初学者的悲哀,似有所悟,又表达不出来,本来不想丢这个人,被逼的,哈哈。
废话不说了,就想到哪写到哪,就当给此时的记忆打个标签了。
我主要想说的是自己对于数据库在项目分析设计阶段的一些小想法。我觉得,数据库只是一个存储数据的地方,像一个工具一样,或许说就是一个工具,它的作用只是在我­们需要保存一些数据以供我们将来使用的时候,提供一个场所保存(理所当然还有其他的场所可以保存数据,例如XML),不应该把数据库设计过早的在分析设计阶段加­入,更不该把数据库设计做为程序开发的入口。在上学的时候,做一个这成绩查询系统那借书系统(基本上就这两个-_-||),记得所有人都是一开始就把数据库洋洋­洒洒的搭起来先,然后就是一个界面,增删改查;第二个界面,增删改查。可是当系统变大了,对象关系复杂了,我觉得一开始就进行数据库设计就不太合适了,为什么呢­?这就是我刚才30分钟想的,但是没想清楚......(都是搞技术的,不许打人,啊)大概来说,我觉得在面向对象里,更多的是要关注将客观的事物合理的抽象为­对象,把握对象之间的关系和对象是怎么相互协作来达到最终目的的,对象的数据只是本身的属性而已,在我理解,数据库设计主要是对表的设计,而每个表中所包含的无­非是数据和关联,每一个表都有可能是一个实体加关联的混合体,如果我们一开始就陷入实体数据和关联的双重夹击中,而且无论是属性还是关联都是不稳定的,就算我们­辛辛苦苦建立了一堆表,也许会发现表的关系错综复杂,外键满天飞,关联到处是,用到一个属性加一个属性......(再次声明,反正我是这样的,高人不在本文讨­论范围之内,呵呵)。而且在意识中没有一个整体的概念,表一但确定了就惯性思维很难再去管他的对错和是否舒服,围绕着这些还不知道是否正确的表,进行程序的开发­,很容易被引的离正确简洁的方向越来越远。
而相比数据来说,对象则是相对稳定的,而且因为对象的本身属性与对象之间的关联是没有关系的,可以分开讨论,一开始先讨论概念之间的关系,减少不必要的关联,使­对象之间的关系明确简洁,然后再确定每个对象本身的属性,当概念模型稳定并可以实现系统功能的时候再进行持久层的设计,将对象的关联自根据其之间的可见性和多重­性的关系加入到相互关联的一个或两个对象中,就形成了关联属性,这样就顺水推舟的从概念分析转到持久层的设计,当然两个对象之间的关系,反映到数据库中可以有多­种表达方式,而且没有对错,不同情况对应不同的方式,但是对象的关系是稳定的,这也证明了对象的关系要比表的关系稳定的多。(有点拗口,对不住。。)
说到这不知道听糊涂了多少人,,最后总结一下,这些东西没有对错,应该在不同应用需求下灵活采取最优的方法,但是个人建议所有的像我一样刚掉进编程海洋的苦难同­胞们,将更多的精力投入到对对象的提取和分析,不要困在数据库设计中,也许有一天会觉得数据库中那些破表的形成是那么自然而优雅。
最后声明,现在网上好多人在吵,关于数据库什么终结时代到临什么的,都是大家之谈,我等小鸟,没资格谈这些,其实我觉得大家所说的数据库时代所代表的意义都是不­同的,所以吵的没意义。不过要锻炼面向对象的看待问题方法是没错的。废话较多,大家担待。  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值