![]() |
1
5
我认为选项1更好。数据完整性得到了更好的保持(不可能有一个带有相反标志的结束日期),在超大表的情况下,占用的磁盘空间更少,而且查询仍然可以执行,并且对于团队成员来说是清晰易懂的。 |
![]() |
2
2
第一个更好。检查空值很便宜,但是保留一个单独的标志可以使关闭日期尚未关闭。 |
![]() |
3
2
我认为isclosed列是一个计算列。
原因是您没有存储任何内容,现在可以对应用程序代码和存储的进程进行编码以使用此列。如果您的业务规则发生更改,您可以将其转换为实列,而无需更改其他代码。否则,您将在整个应用程序代码和存储过程中散布业务逻辑。这样,它只在一个地方。 最后,当您移动到sql2005时,可以添加“persisted”子句。因此,它将被存储,稍微提高性能,并且您将不会遇到保持它们同步的问题。 |
![]() |
4
0
我不会将语义指定为空。这样做将使您的业务逻辑冒泡,您将得到类似于…
以这种方式使用空值是不好的。空的意思是“我不知道”。你在给那个答案赋予语义意义,而实际上你不应该这样做。关闭状态是关闭状态,关闭日期是关闭日期,不要合并。(例如,上帝禁止你想重新打开一个小部件,但仍然记得它最初关闭的时候。) 埃里克·利珀特 nice blog post 也可以用这种方式使用空值(kidna)。 |
![]() |
sqlrobert · SQL-如何查找不包含特定字段值的一组记录 2 年前 |
![]() |
Nick Fleetwood · 调度语法的LINQ查询 3 年前 |
![]() |
Mateen Bagheri · 选择表的计数并选择其自身 3 年前 |
![]() |
Java · 使用交叉应用同时显示两列 3 年前 |