早上好,
我正在寻找一种方法来组合两个整数来创建一个唯一的数字,我有两个表,我需要组合成一个具有唯一数字的第三个表,
这些是我的表:
Table A
SchoolID ClassId
107 56644231
107 56644532
107 320110212
Table B
SchoolID ClassId
108 566442310
108 56644532
108 50110212
Run Code Online (Sandbox Code Playgroud)
我需要将这些字段导出到第三个表,将表ID和学校ID组合到一个名为classID的字段中.我需要能够将这些数字组合在一起,然后才能将它们组合在一起,以便将schoolid和classid分开以进行更新.我想连接字符串,'schoolid + '00' + 'classid'因为我知道schoolid将始终是一个3位数字,但我正在寻找其他方式或许数学,我不必使用字符串强制转换.
有数学方法可以做到这一点吗?或者是铸造字符串最好的方法来做到这一点?
我正在使用C#来编写解决方案.
谢谢,
我意识到这个问题之前很可能已被问过,但我在StackOverflow上搜索了一些问题,我没有真正找到答案,所以这里有.如果您发现重复,请链接到它.
出于某种原因,我更喜欢在我的主键字段中使用Guids(uniqueidentifier在MsSql中),但我真的不知道为什么这会更好.在许多教程中,我最近走了一段时间,int使用了自动递增.我可以看到两者的专业和缺点:
Guid总是具有相同的大小和长度,并且没有理由担心耗尽它们,而在你用完一个数字之前,你可以拥有多少记录int.int (至少在C#中)是一个可空类型,在查询数据时会打开几个快捷方式.int更容易阅读.因此,就像标题所说的那样简单:数据库中ID(主键)列的推荐数据类型是什么?
编辑:收到几个简短的答案后,我还必须添加这个后续问题.没有它,你的答案既不引人注目也不教育...;)为什么你这么认为,另一种选择的缺点是什么让你不选择呢?
language-agnostic database-design types primary-key database-agnostic