这是一个架构问题场景
所以我有一份教师名单和另一份学生名单。
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
是不是?如果没有,工作流程的正确结构是什么?
答案 0 :(得分:0)
其中一个解决方案可以是。
我会这样做。
答案 1 :(得分:0)
如果要将此值传播到其他系统,则不能使用任何散列类型解决方案,因为它不是可逆操作。您需要一些全局整数标识符。
我建议您使用自动增量整数主键创建一个新表,并从Student和Teacher表中引用该表。然后,每次创建新学生/教师之前,在“GlobalIdentity”表中插入新记录,并使用上次生成的id作为全局标识符。 不要将学生/教师表中的这个新列标记为外键,然后您可以定期清理GlobalIdentity表。