时间:2021-07-01 10:21:17 帮助过:19人阅读
例如:使用数据库创建外键约束:
CREATE TABLE `m_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘主键‘, `user_name` varchar(50) NOT NULL DEFAULT ‘‘ COMMENT ‘用户名‘, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `m_order` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘主键‘, `total_price` decimal(10,2) NOT NULL DEFAULT ‘0.00‘, `user_id` int(11) NOT NULL DEFAULT ‘0‘, PRIMARY KEY (`id`), CONSTRAINT `for_indx_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
不使用数据库创建外键约束:
CREATE TABLE `m_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘主键‘, `user_name` varchar(50) NOT NULL DEFAULT ‘‘ COMMENT ‘用户名‘, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `m_order` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘主键‘, `total_price` decimal(10,2) NOT NULL DEFAULT ‘0.00‘, `user_id` int(11) NOT NULL DEFAULT ‘0‘, PRIMARY KEY (`id`), KEY `idx_user_id` (`user_id`), ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3.避免使用触发器
4.谨慎使用预留字段
建议:
4.反范式化设计。
数据库设计优化
标签:库类 _id pgsql 参考 设计 触发器 log 之间 范围