数据库设计时的建议详解数据库

1.数据库设计时,如果是下拉的框,表示状态的框,不要将这些状态值硬编码在代码里面,因为这些很可能会随着后期需求的改变而改变,建议使用数字表示,这样的优势在于

a.如果状态的字符串变了,但是值可以不变,这样如果有其他模块依赖这个值,也不会对他们产生影响

b.如果后期用数据库表类维护这些值,那数字的优势就体现出来了,可以直接兼容.(还有很重要的一点,在设计之处就把它设计成tinyint,那么就不存在这些问题)

c.mysql建表时,同一模块的表最好有一个共同的前缀或者后缀,这样,当用show tables like ‘tablename’ 时就可以把这个模块的表全部查到了。

2.mysql 中的char 和 varchar 

国内写的一本书书上说char会自动把多余的空格删除掉,而varchar不会.

Server version: 5.5.49-0ubuntu0.14.04.1 (Ubuntu)

今天做了一个测试结果令我很无语啊,插入了一个很长的字符串(超过了255),然后执行插入操作,然后他成功了,但是他把超过的字符给剪掉了.这个很可能是和版本和操作系统有关吧,之前在windows上的时候数据库会报这个字符太长了的错误,

因此我觉得在后台代码做长度校验还是很有必要的.

 

查询表被那些表关联(当要删除一张表时,却提示这张表被其他表关联了,此时你是否很想知道是被哪些表关联了,来源:http://zhidao.baidu.com/question/198072067)

select TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME,
REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME from KEY_COLUMN_USAGE where REFERENCED_TABLE_NAME = ‘<table>’;

如果需要查看某一列上的外键关系,需要添加列的条件 REFERENCED_COLUMN_NAME.xx=xx

show create table 表名;这个命令可以查看表的所有信息,包括一些字段类型,字段的约束,外键,主键,索引,字符编码等等。

 

mysql> insert into BOOK (NAME)value('1121212121212121212122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333322222222222222222223wreeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeewwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwweeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeesssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssffffffffffffsfdfsddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd22222222222222222222222222222222222222222222'); 
Query OK, 1 row affected, 1 warning (0.07 sec) 
mysql> select * from BOOK; 
+----+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+-------+----------+---------------------+--------+ 
| ID | NAME                                                                                                                                                                                                                                                            | AUTHOR | PRICE | INFO     | PUBLISHDATE         | amount | 
+----+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+-------+----------+---------------------+--------+ 
|  1 | java                                                                                                                                                                                                                                                            | sun123 | 100.9 | javaEE   | 2015-11-20 00:00:00 |      0 | 
|  2 | 123                                                                                                                                                                                                                                                             | qq     |   123 | testtest | 2015-12-12 12:12:12 |      0 | 
|  3 | ooop                                                                                                                                                                                                                                                            | kkk    |  1212 | 1212asdf | 2015-12-12 12:02:12 |    233 | 
|  4 | qwe                                                                                                                                                                                                                                                             | 123    |   123 | qwewertr | NULL                |    123 | 
|  5 | 112121212121212121212222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 | NULL   |  NULL | NULL     | NULL                |      0 | 
+----+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+-------+----------+---------------------+--------+ 
5 rows in set (0.00 sec)

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/4664.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论