合并两个不同的整数列表并从整数中取回集合

时间:2014-09-13 06:11:49

标签: c# .net architecture

这是一个架构问题场景
所以我有一份教师名单和另一份学生名单。

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

是不是?如果没有,工作流程的正确结构是什么?

2 个答案:

答案 0 :(得分:0)

其中一个解决方案可以是。

  1. 将学生放在一张桌子上,而另一张桌子上的老师。
  2. 将数据存入.Net数据表并合并两个表数据 一个人。
  3. 在新表格中创建一个包含id字段的列 使用关键字's'和't'排列ID,例如s-1,t-1,s-2,s-43等
  4. 在另一边解码id以获得原始id和性质 id(老师或学生)
  5. 我会这样做。

答案 1 :(得分:0)

如果要将此值传播到其他系统,则不能使用任何散列类型解决方案,因为它不是可逆操作。您需要一些全局整数标识符。

我建议您使用自动增量整数主键创建一个新表,并从Student和Teacher表中引用该表。然后,每次创建新学生/教师之前,在“GlobalIdentity”表中插入新记录,并使用上次生成的id作为全局标识符。 不要将学生/教师表中的这个新列标记为外键,然后您可以定期清理GlobalIdentity表。