宅男程序员给老婆的计算机课程之9:数据模型
这次来讲MVC中最后的M。 Model,几乎可以说是网页应用的核心。 之前课程提到过网页应用是由数据库驱动,而在很多场景,数据库 = M ; M = 数据库。 所谓的ORM; object relational mapping。 现在新的网页开发框架,特别是MVC框架,都会提供ORM支持,避免程序员直接写SQL、操作数据库。 传统上,ASP/ php臭名昭著的sql注入问题,便是因为菜鸟程序员直接在程序中根据用户输入拼接数据库造成的;而使用ORM框架,则可以彻底避免这种问题。 ORM有两种风格,一种是 R => O;一种是 O => R 。 ====== R => O ====== 传统上,程序员也都是先完成数据库设计(甚至是由DBA完成),然后再考虑相应的对象生成,也就是所谓的 R => O。 在这样的场景下,整个软件的框架,还是以数据库为核心,业务的设计思维是以关系型数据库的表结构为基础去考虑的,具体应用实现上,会考虑很多关系型数据库的功能特性,比方说,外键,joining等等,并且,程序员需要直接考虑“数据库设计三范式”,以及冗余字段等面向数据库的优化手段。 并...
