主键和外键到底是应该用有实际意义的列还是没实际意义的列好,用什么数据类型好,没有实际意义的外键如何实现和主表的关联
解决方案 »
- sql2005 我在打开表时候进行数据查询。为什么出这个错误提示之后,sql2005就关闭了
- 请教大家关于数据库连接数的问题
- 订阅失败的问题
- 有没有一个语句可以清除存储过程中所有的变量的值,都变为NULL
- SQL Server查询操作如何设置为并发执行
- DB2数据迁移同步sql问题
- sp_cursorclose,sp_cursoropen,sp_cursorfetch到底有什么作用?大量運行它們是不是會導致死机呀?
- 存储过程中可以接数组么
- 如何级联删除自反关系的表里里面的记录
- 在sql server6.5下怎么把一个数据库(包括结构和数据)导出为一个文本文件或是一个SQL描述文件?
- 怎样达到批量插入数据时不产生日志
- 1分钟的菜鸟问题!在线等!谢谢
外键的话在外键表里面多加一个主键ID字段就可以了。
是不是把作為主鍵的列作為標識,增量為1,外鍵為用相同的類型和設置?
那是不是主從表之間就不存在關聯了?
其次,设置主键通常通过两种方法实现:标识列(IDENTITY)和全局标识列(GUID)。
另外,对于外键,可以在外键表里面多加一个主键ID字段就可以了,此时的外键数据类型要么是INT,要么是UNIQUEIDENTITIE。
通过这种设计之后,主从表之间就可以经由外键进行连接了!
呵呵,好运!~
不是“在输入数据的时候就要确保相同ID对应的记录”!而是,在你往主表中插入一条记录之后,数据库系统(如:SQL Server 2000)会通过系统触发器自动确保主表中的ID与从表中的外键ID总保持一致!
~呵
是不是把作為主鍵的列作為標識,增量為1,外鍵為用相同的類型和設置?
_______________________________________是,这样做好处多多,上面几位也讲了一些,再补充一点:最常见的问题就是在客户端处,诸如物料编码、部门编码、员工编码、会计科目等等都可以随时动态修改,因为你在其他表中引用的只是item等信息的流水ID而已,在item表中对item的编码列进行改动不会影响到其他表对item流水ID的正确引用。