建议外键保存id还是code

今天做项目遇到导入一批数据,但是因为基础档案(只的是用户档案、部门档案等)重新导入过,所以单据的外键id都关联不到以前的基础档案数据了,如果当时外键用code就不会这样了。

另外建议专门有张表管理各个单据的code前缀

时间: 2024-08-30 07:33:42

建议外键保存id还是code的相关文章

Navicat for SQL使用注意(设置默认字符集,外键保存不了)

最近用mysql+Navicat for sql开发项目时遇到了以下问题: 1.默认创建的数据库,字符集编码为:latin1 -- cp1252 West European 在数据库中存储中文时会出现乱码错误 2.用Navicat给数据库添加外键约束时,保存不了,保存后消失 解决方案: 1对于字符集问题有3种解决方式,设置字段字符集,表的字符集,数据字符集 其中设置字段字符集,表的字符集方法较笨,需要一个一个的设置,这里就简要说明下: 在navicat中选择要操作的表,选择"设计",将

数据库 SQL 外键约束 多表查询

多表设计与多表查询 1.外键约束        表是用来保存现实生活中的数据的,而现实生活中数据和数据之间往往具有一定的关系,我们在使用表来存储数据时,可以明确的声明表和表之前的依赖关系,命令数据库来帮我们维护这种关系,像这种约束就叫做外键约束.          定义外键约束  foreign key(本表的列名 ordersid) references orders(id)(引用的表明及列名)     create table dept(         id int primary key

navicat设置外键

最近使用navicat设置外键发现保存以后会消失,然后各种百度发现问题了,表的引擎是MyISAM,InnoDB引擎才支持设置外键 如图打开表设计,在选项一栏选择InnoDB,然后保存,被关联的表同样需要设置InnoDB引擎 两个都引擎都设置好了以后,添加外键 保存的时候,报错,保存不了,仔细观察发现,a表和b表中外键关联字段类型有差异,a的主键是无符号的,b表的a_id字段是有符号类型,把b的a_id类型修改为无符号类型保存发现成功了,外键建立完毕.

浅谈MySQL外键

http://www.xiaoxiaozi.com/2009/07/12/1158/ 像MySQL这样的关系型数据库管理系统,它们的基础是在数据库的表之间创建关系的能力.通过方便地在不同表中建立记录到记录的联系,RDBMS可以利用不同的方法分析数据,同时保持数据库以系统的方式.最小的冗余进行组织. 简单描述:这些关系基本上依靠外键进行管理,在关系中所有表中具有相同含义的字段作为公共部分来连接不同表中的记录.外键可以是一对一的,一个表的记录只能与另一个表的一条记录连接,或者是一对多的,一个表的记录

PHP数据连接主键与外键!

设置MySQL数据表主键: 使用"primary key"关键字创建主键数据列.被设置为主键列不允许出现重复的值,很多情况下与"auto_increment"递增数字相结合.如下SQL语句所示: Mysql>create table books(bookid int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,bookname varchar(50)); Mysql>insert into books(bookname

sql 数据库查看主外键关联

SELECT 主键列ID=b.rkey ,主键列名=(SELECT name FROM syscolumns WHERE colid=b.rkey AND id=b.rkeyid) ,外键表ID=b.fkeyid ,外键表名称=object_name(b.fkeyid) ,外键列ID=b.fkey ,外键列名=(SELECT name FROM syscolumns WHERE colid=b.fkey AND id=b.fkeyid) ,级联更新=ObjectProperty(a.id,'Cn

仅作记录,游标,级联删除,获取所有该外键的表名

以下内容只是部分原创,仅是之前收集到的知识.只做记录避免遗忘,具体出处已遗忘. 一.游标结构 总是遗忘游标的结构 declare PeriodDataCursor cursor for select ID , ClassTime from @temptable order by [ClassTime] desc open PeriodDataCursor fetch next from PeriodDataCursor into @ID , @firstClsTime while(@@FETCH

SQLServer:查询所有外键关联表信息

--从左到右分别是: 外键约束名,子表名,外键列名,父表名 --use demodtcms--外键信息select fk.name fkname , ftable.name ftablename, cn.name fkcol, rtable.name ftablename,ObjectProperty(fk.id,'CnstIsUpdateCascade') updatCase,ObjectProperty(fk.id,'CnstIsDeleteCascade') deletCase from

Entity Framework Code First主外键关系映射约定

本篇随笔目录: 1.外键列名默认约定 2.一对多关系 3.一对一关系 4.多对多关系 5.一对多自反关系 6.多对多自反关系 在关系数据库中,不同表之间往往不是全部都单独存在,而是相互存在关联的.两个不同表之间可以存在外键依赖关系,一个表自身也可以有自反关系(表中的一个字段引用主键,从而也是外键字段). Entity Framework Code First默认多重关系的一些约定规则: 一对多关系:两个类中分别包含一个引用和一个集合属性,也可以是一个类包含另一个类的引用属性,或一个类包含另一个类