今天完成的事情:
进行任务4
明天计划的事情:
进行任务4
遇到的问题:
收获:
看css task10、task11的页面。参考师兄的日报和官网页面,设计了三个表(感觉好low)




在设计表的过程中感觉不是很顺畅,所以补了补关系数据库的三个范式、主键、索引相关的知识。补完之后还是不顺畅,询问了下康总关于数据库设计的相关东西。数据库字段命名用下划线,不用驼峰。优秀的软件设计是建立在对业务的充分理解上的。
今天一天都在想着如何把页面数据抽离出来。后端给出去的数据,前端是如何解析的。我觉得解析和数据库的设计相关性很大(先定接口,后写数据库)。和康总聊了下,这种竟然是理想状态,因为一开始并不能完全的把控住项目需求(是这个原因么?),所以一般先数据库,后接口。
看页面(页面即原型?),先分清楚哪些是前端的页面本身内容,哪些是需要前后端交互的内容或者是需要后台存储(即页面需要填写或者显示的内容,重点在于和后台交互)。先拆解出需要前后端交互,可扩展的数据项。
1.创建主键语法
ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名);
2.创建外键语法
ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[约束名] FOREIGN KEY (info_id)[子表列] REFERENCES news_type[主表名] (id)[主表列] ;
3.使用组合主键
如果一列不能唯一区分一个表里的记录时,可以考虑多个列组合起来达到区分表记录的唯一性,形式
①创建时:create table sc (
studentno int,
courseid int,
score int,
primary key (studentno,courseid) );
②修改时:alter table tb_name add primary key (字段1,字段2,字段3);
索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引的方式与您使用书籍中的索引的方式很相似:它搜索索引以找到特定值,然后顺指针找到包含该值的行。
关系数据库的设计范式(三大范式,为了避免数据冗余。)
所谓
第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。
那么符合第一模式的特点就有
1)有主关键字
2)主键不能为空,
3)主键不能重复,
4)字段不可以再分
第二范式(2NF)要求实体的属性完全依赖于主关键字。(前提先符合第一范式)
满足第一范式的前提下,消除部分函数依赖。
第三范式(3NF)要求每个非
关键字列都
独立于其他非关键字列,并依赖于关键字,第三范式指数据库中不能存在
传递函数依赖关系。
不要用字符作为主键,一般优先使用与业务无关的字段作为关键字。类型建议使用long。
Java数据类型 Hibernate数据类型 标准SQL数据类型(PS:对于不同的DB可能有所差异)
byte、java.lang.Byte byte TINYINT
short、java.lang.Short short SMALLINT
int、java.lang.Integer integer INGEGER
long、java.lang.Long long BIGINT
float、java.lang.Float float FLOAT
double、java.lang.Double double DOUBLE
java.math.BigDecimal big_decimal NUMERIC
char、java.lang.Character character CHAR(1)
boolean、java.lang.Boolean boolean BIT
java.lang.String string VARCHAR
boolean、java.lang.Boolean yes_no CHAR(1)(‘Y’或‘N’)
boolean、java.lang.Boolean true_false CHAR(1)(‘Y’或‘N’)
java.util.Date、java.sql.Date date DATE
java.util.Date、java.sql.Time time TIME
java.util.Date、java.sql.Timestamp timestamp TIMESTAMP
java.util.Calendar calendar TIMESTAMP
java.util.Calendar calendar_date DATE
byte[] binary VARBINARY、BLOB
java.lang.String text CLOB
java.io.Serializable serializable VARBINARY、BLOB
java.sql.Clob clob CLOB
java.sql.Blob blob BLOB
java.lang.Class class VARCHAR
java.util.Locale locale VARCHAR
java.util.TimeZone timezone VARCHAR
java.util.Currency currency VARCHAR

评论