到底数据库中应该不应该用ID来唯一标识一条记录……烦人啊!散分…… 今天负责人讨论数据库结构,非要3个字段以上来唯一的决定一条记录,不用ID,郁闷啊!大家说该不该用ID啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那个人说的是复合主键!!!可以使用这种方式来唯一确定数据库中记录。如果你的表与别的表关联比较多,那么使用符合主键可能会降低效率,可以考虑使用ID莱维已确定一条记录。但是ID不是简单的1,2,3...,一个好的ID首先要保证没有重复、其次要保证有一定的可读性,例如我使用的ID是这样定义的YYYYMMDDHHMMSS###$$$,前面的一看就知道什么意思,###表示的是ID的来源(我的ID的来源非常多),$$$表示的是顺序号(我的程序是多线程的)。你可以考虑ID和符合主键同时定义的方案,这样一方面符合你的习惯,另外一方面你可以通过视图实现符合主键查询的功能!!! 这是要根据不同情况决定的,id是方便,但是对 需要查重的数据 或者 多地的数据 就不合适;如一个客户在多个分公司购买产品,你不可以用id记录一个客户成多个客户;如库存,需要 分公司编号+产品编号 唯一决定,用id可能会一个地区的某产品有多记录 你说的是主键吗?主键:field1+field2+field3请问,我知道主键的值要你找到这条记录,你的唯一ID可以做到吗?当然你会说:只要你记住ID就行了。事实上并不是这样的,一条记录是某一特定对象的相关信息描述,你给这个对象分配一个ID(如0001),更加增加了记忆的负担,你记住了0001(0001有什么用,谁知道他是什么),是不是还要将上面主键内容记住才能确认001是谁? 其实用不用id都无所谓的,如果你的表关联少,完全可以用自增id来给每条记录判断唯一性,不过最好用录入数据本身带有的唯一性特征做主键,id只是辅助作用。 联合主键什么时候用?我举个简单例子楼主就明白:有一表TABLE1,里面存放新闻记录,字段有TITLE,CONTENT,PHRASE等,该数据库要求在网上发布。很明显,新闻不要求重复,因此我们选定title+content为主键,这样我可以保证我的数据库里的新闻没有重复的,反之此时用id就无法达到要求 to lonaerd(罗纳尔多) :但是我也可以用ID来唯一的表示一条记录啊,然后在存放新闻信息时判断有无重复内容啊。不过这样是麻烦了一点。 r_james(james) :在主键内实行多级编码的方式,是不是就是你的主健的内容是多个意思组合起来?就象YYYYMMDDHHMMSS###$$$呢?我以前做的一个考勤系统,其中主健就是采用时间+员工号+am/pm+/sb/xb其中/sb/xb表示上下班登记 都这么复杂啊。大家有没有听过ms的GUID啊,声称几个世纪都不会重复! 呵,我也喜欢用YYYYMMDDHHMMSS+RANDOM的3-8位。若还不爽可把员工帐号007加在随机数前我现在又更觉得用天数,这样更短了。即从2000年开始算今天是第700天,前补一个0,即0700,才4位,就比YYYYMMDD省了4位了,别说你的系统能用到2030年。那就用5位吧,补两个0,可用300年的系统。秒数也用小时*3600+分种*60+秒,也只有5位数,不过省这一位数就有点小题大作了 To xiaoyuer0851(小鱼儿0851):对!多级编码的是比较先进的处理方式(我认为)!不过我现在看到的有多级编码的项目中的多级编码使用的不多,即使使用了也不规范,这样就很难体现出它的优点!更重要的是开发环境中对多级编码并没有更大的支持,所以要想在一个项目中使用多级编码,设计人员和编码人员要做的工作太多,这可能也是多级编码没能大量实现的一个原因吧! pos問題 传递数组类型给ORACLE存储过程问题!!! 大家来帮忙!!!!有点点难度 谨祝:比民工略强的IT工作者五一节日快乐[第一名顶贴者得分:)] 送分题。请问有关 c/s 方面的问题! 有个符号不明白什么意思 如何在每页的后面加个备注栏? listview如何加item,找了半天没找到! 求助-gexpert内变量名自动大小写设置 谁会写学校的自动排课系统? 又多了条裤衩,终于可以散200分了! 如何向表中插入图象记录?急用!!
你可以考虑ID和符合主键同时定义的方案,这样一方面符合你的习惯,另外一方面你可以通过视图实现符合主键查询的功能!!!
主键:field1+field2+field3
请问,我知道主键的值要你找到这条记录,你的唯一ID可以做到吗?
当然你会说:只要你记住ID就行了。
事实上并不是这样的,一条记录是某一特定对象的相关信息描述,
你给这个对象分配一个ID(如0001),更加增加了记忆的负担,
你记住了0001(0001有什么用,谁知道他是什么),是不是还要将上面主键内容记住才能确认001是谁?
但是我也可以用ID来唯一的表示一条记录啊,然后在存放新闻信息时判断有无重复内容啊。不过这样是麻烦了一点。
在主键内实行多级编码的方式,是不是就是你的主健的内容是多个意思组合起来?
就象YYYYMMDDHHMMSS###$$$呢?
我以前做的一个考勤系统,其中主健就是采用
时间+员工号+am/pm+/sb/xb
其中/sb/xb表示上下班登记