合并两个不同的整数列表集,并从整数中取回该集
本文关键字:整数 列表 两个 合并 | 更新日期: 2023-09-27 18:21:40
这是一个架构问题场景
所以我有一份教师名单和另一份学生名单
public class Teacher
{
public int Id{ get; set; }
public string Name{ get; set; }
public int SubjectId { get; set; }
}
public class Student
{
public int Id{ get; set; }
public string Name{ get; set; }
public int ClassStandardId { get; set; }
}
现在我需要显示一个教师和学生的下拉列表。如果用户选择了一个人,那么程序需要将Id映射回教师或学生
一些假设/限制是
1.学生和老师的名字加在一起是唯一的。因此,在给定的下拉列表中,名称将是唯一的
2.选择一个人后,只有给定的Id会从系统中出来到不同的应用程序,当它回来时,我的应用程序需要将其映射到老师或学生
3.Id只能是整数
4.用户只想在一个下拉列表中查看所有人的列表
因此,我可能需要生成不同的Id集,例如
1.教师集合将使用id作为1<id<9999
2.学生集合将使用id作为10000<id<9999999
对吗?如果没有,工作流的正确结构是什么?
其中一个解决方案可以是.
- 让学生坐在一张桌子上,而老师坐在另一张桌子
- 将数据放入.Net数据表中,并合并两个表的数据成为一体
- 在新表中创建一个id字段为的列,然后用关键字"s"answers"t"排列id,例如s-1、t-1、s-2、s-43等
- 另一方面,解码id以获得原始id和id(教师或学生)
我会这样做的。
如果您想将此值传播到其他系统中,则不能使用任何哈希类型的解决方案,因为它是不可逆的操作。您需要一些全局整数标识符。
我建议您创建一个具有自动递增整数主键的新表,并从Student和Teacher表中引用该表。然后,每次在创建新的学生/教师之前,都会在"GlobalIdentity"表中插入一条新记录,并使用最后生成的id作为全局标识符。不要将学生/教师表中的此新列标记为外键,然后可以定期清理GlobalIdentity表。