我是否应该使用主键id,如果表没有单独的意思?

Bas*_*e33 4 sql sql-server entity-framework

我有一个名为'Date Restriction'的表,它基本上包含以下属性:

DayId    : int
DateFrom : datetime
DateTo   : datetime
EventId  : int       // this is a foreign key
Run Code Online (Sandbox Code Playgroud)

现在我访问它的方式是获取我想要的事件,然后查看相关的日期限制.

如果我不必单独引用日期限制,这是一种好的做法还是建议在此表中添加主键列?

sup*_*ady 5

你应该总是有一个主键.拥有主键将允许SQL Server以更有效的方式物理存储数据.主键还允许实体框架轻松唯一地标识行.

在列中查找自然键.如果单个EventId在此表中只有一行,则在EventId上创建一个主键.

如果没有自然键,请在表中添加代理键列并使其成为标识.