对于小白来说web开发最难的部分是数据库的设计吗,数据库的设计有什么技巧?

对于小白来说web开发最难的部分是数据库的设计吗,数据库的设计有什么技巧?,第1张

就我个人的经验来说,数据库虽然在设计上确实需要有一定的经验,但是它并不是最难的。

对于数据的设计其实是对于现实中业务的一种抽象。

就我的习惯的话,我会先对于现实中的业务场景、业务的角色进行分析。

就拿一般的进销存系统来举例吧。

我有一个对于物料管理的仓库,我需要对我的物料的进销存进行管理。

那么我们就需要分析,没有系统的时候,人与人之间的业务是怎么流转的,他们都是通过哪些表单来进行流转的,上下级之间的消息传递和反馈都是怎么进行的。

当知道了业务以后,我们的数据库无非就是对于现实中的业务的一种具现。

对于业务的设计完成以后,就是针对角色的了。

例如:业务的传递都是在业务人员之间的,我们已经整理表单的传递,那角色其实就已经在这些传递中存在了。

但是,业务的角色是业务的角色,我们还要包括财务的角色,那对于财务来说,他需要在哪些环节看到这些业务的单据?并且需要怎么处理?财务的处理结果又包括哪些?不同的处理结果对于下一步的 *** 作又有什么影响。

当我们把这一切的逻辑整理完成后,我们对于数据库的功能上就已经满足了。

接下来的就是抽象数据的分类了。

例如:我们需要对不同的表进行一个分类,我个人喜欢把表分成三种,一种是基础数据表,一种是过程表,一种是结果表。

怎么解释呢?

基础数据表:顾名思义,就是对于基础数据的维护,哪些可以成为基础数据呢?就是我们的业务发生的各个过程中,这些数据都是可以参与其中的,这就是基础数据。

例如:货物的信息,客户的信息。

过程表:就是仅仅在一个过程中使用的表,当这个过程结束了,这个表就没用了。

例如:订单表,付款单表。他们表示的仅仅是订单从下单到最后关闭的这个过程,关闭以后,这个订单表其实我们就不会再去使用它了。

结果表:这个表的数据有一个特点,只允许添加,不允许删除和修改,这个表的数据本身就是对于一种最终结果的表现。

例如:日志表、账单表。

那我们在进行数据库设计的时候,就需要将这些使用情况考虑进去,将不同功能的表进行分离,尽量降低耦合,让相互表的修改不会影响使用。

例如:收款单,我们需要收一笔款的时候,就会生成这个收款单,当款收到后,这个收款单的功能就结束了。

但现实的情况中,可能财务收到了这笔钱,结束了收款单流程后,他发现填错了,本来应该收100,结果收款单写的110。

但是,收款单表示的是过程,当这个过程结束了,我们就不会再需要上一个收款单了,所以,按照我们业务的处理流程,我们应该先生成一笔冲抵的收款单,例如收到-110,然后再生成新的100的收款单。

我们每个月还会有财务统计报表,财务报表因为和现实中的财务账有关,是绝对不允许变动的,因此,这个财务报表就是一个结果表,我们会按月通过批处理程序,将收款单的明细和统计数据放到另一张表中,感觉好像比较冗余,但是这个确实非常必要的。

因为我曾经就遇到过一个情况,我们直接用过程表来进行数据的统计,然后11月30日有一笔收款已经完成了,结果发现收错了,就重新做了个收款单,结果本来已经出了11月结果的账单发生了变化,导致财务实际的处理出现了问题。

因此,数据的冗余有时候是有必要的,我们需要根据不同表的类型进行一些冗余的设计。

对于数据库设计的考虑点还有很多,可能一时半会儿也说不完,大家如果有什么好的思路,也可以在下方评论或关注我给我留言。

如今的程序员世界,已经博大精深,就像小说中的功夫派别一样,各种门派如百家争鸣,新入门其中,感觉就是一个,这么多我选择什么呢?各种程序类型,各种开发环境,各种框架、结构,绝对让人眼花缭乱

这个时候对于很多新手来说,如何选择是个难题

对于APP开发,如何选择原生与混合,小编的意见就是选择自己擅长的,对于新手来说,选择简单的

从无到有,循序渐进,这样子从个人学习进度、学习兴趣来讲,都是合适的

一下子来个高大上,只能让你陷入困境

学习程序我的经验是,先看语法,文档,然后模仿,一个个功能学习,逐步深入

APICloud的学习成本真的非常低,基本上花几个小时把文档看一下就可以进行开发了,没有需要学习的新知识,需要用到的只不过是最基础的html、css、js

而其它的例如phonegap需要针对每个平台单独搭建原生开发环境,ionicFramework需要学习AngularJS学习成本都很高

仔细阅读开发文档

APICloud关键的地方和内容都可以从开发文档中找到

一个好的程序类型,就如一个成俗的门派一样,各种规则、注意事项都会告诉新人明明白白,谓之新手教程

这一点很多新入门的同学其实没有注意这一点

熟悉基本的 *** 作

根据文档介绍和IDE进行实际的基本 *** 作,比如新建工程、调试、打包等,摸清楚IDE的功能,使开发熟练度更高

推荐编辑器,sublime,调试器,谷歌浏览器,海马玩模拟器

熟练使用开发工具,尤其是多种开发工具组合,能够大量节省开发时间

熟练掌握程序开发中的基本元素

作为混合开发平台,APICloud开发其实能够满足多种类型的开发者

但有几个基本共同点,一是要熟悉Web开发,二是要熟悉JS *** 作,三是能够熟练运用APICloud的api

前2者是基础,后面是为了让程序飞起来

Web开发三剑客HTML、CSS、JS可以完成一个WebAPP的开发,也能够使一个程序变成一个APP,api则提供了更加丰富的功能,使得WebAPP能够无线的接近原生APP

因此,熟练掌握API *** 作,是一个能够进行高质量APICloudAPP开发的必经之路

再次建议大家多看几遍相应的文档、介绍,对核心的文件 *** 作、硬件访问、数据通信等进行实践 *** 作,对frame、Win的原理、机制要有个较为深刻的理解

掌握APICloud程序开发的脉络

每一门程序和一门武功一样,都有其特点,绝招,摸清楚这些,就会让你的开发更加简单、随意

开发具体技巧后面再说,首先要明白APICloud开发中几个基本规则,Win是一个窗口,Frame是一个子窗口,或者一个类似层的概念,窗口不能叠加,Frame可以叠加,嵌套,但是都是平行的

api和模块提供了很多底层的方法,提供了远远高于HTML5标准的访问权限和机制,这是html5所不能提供的

官方的文档也是有脉络可循的,遵循基本原则,一般都是require,然后初始化或者open等

再比如一个模块,一般都有fixed、fixedOn属性,各有各的作用,梳理好这些规则,就好比掌握了武功的脉络,后期开发就会事半功倍

个人开发过程中的一些经验尽量不要使用前端框架,避免对性能造成影响,尽量仅用官方的apicss、api、js再加一个artTemplate模板引擎就行了

IDE可以选择在WebStorm中进行代码编写,要调试的时候去官方的IDE上点一下一键真机调试

可以使用Chrome的远程调试功能进行调试,调整样式和调试js就和调试普通网页一样

尽量使用CSS3动画代替js动画可以在手机上安装SQLiteEditor来查看数据库目前从SQLite查询出的数据都是字符串形式的,记得查询后做好数据类型转换

现在有很多人说网络这么发达,在网络上自学就好了。但是,网络上的资料多种多样,质量各不相同,并且不够系统,所以很容易绕道走。因此,更可靠的方法是找一个有工作经验的Java程序员学习,如果有钱的话,可以考虑找一个专业的Java培训机构进行系统培训。那么,初学者学习应该注意哪些方面的问题呢?下面北京昌平java软件开发为大家具体介绍。
一、基础的重要性有的学生在大学学习过C语言,所有会认为Java很简单,几个变量的声明方式、ifelse的判定句、函数定义的调用方式、for和while的循环等都是共通的。所以,大家一定要在前期多花点时间练习,多敲敲代码。电脑培训认为还需要熟悉字符串和数组的使用方法。在日常开发中可以避免绕道而行。越晚,你就会发现大多数编程语言 *** 作都是以不同的方式 *** 作字符串。二、思维方式的变化众所周知,Java语言是面向对象的语言,而不是C语言。这就像一辆汽车,它有轮子和方向盘,这就是汽车的特点。但是每辆车又以不同的速度行驶,不能用单个属性表示。因为速度会改变,所以汽车的移动也是一种方法。如果我们把汽车包装成一个类,它是一个编程语言类,有一组属性和方法类。Java培训班认为完全了解面向对象意味着在开发程序时可以做更多的事情。三、坚持不懈的学习不必继续多说什么,上过学的人都知道,能坚持的人很少,很多时候往往会缺少一种动力。昌平北大青鸟认为学习Java也是一样,每天坚持学习,每天动手写代码,随着代码量的增加,熟练度也会增加,对找工作也会起到很大的作用。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13401540.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-29
下一篇 2023-07-29

发表评论

登录后才能评论

评论列表(0条)

保存