【发布时间】:2019-09-06 01:53:05
【问题描述】:
我正在使用 EF 核心的数据库优先方法,并试图找出解决以下问题的干净解决方案 -
考虑下面的学生出勤表(不相关的列已删除),该表存储上课日期并允许学生输入他的班级评分 -
create table Student (
Id int Identity(1, 1) not null,
ClassDate smalldatetime not null,
ClassRatingByStudent varchar(250) not null
)
这是一个网络应用程序,学校出勤系统会在 EOD 时自动填充上表,然后要求学生(比如说几天后)添加班级评分。当表由学校出勤系统填充时,ClassRatingByStudent 列中没有任何内容。那么当学生登录时,他必须添加评分。
如您所见,当学校出勤系统填充表时,ClassRatingByStudent 必须为空,而当学生保存他的更改时,ClassRatingByStudent 必须为非空。一个明显的解决方案是让 ClassRatingByStudent 列可空广告在代码中处理它,但我想知道是否存在更简洁的数据库(或者可能是 EF)级别的解决方案,或者针对此类场景的某种模式/架构指南?
【问题讨论】:
-
我会用代码来做。
-
我会将
ClassRatingByStudent定义为NULL并编程系统以将该列中的NULL值解释为学生尚未填写评分的指示符。这里NULL值带有特定的含义。
标签: sql-server db-first