【发布时间】:2017-01-31 03:38:05
【问题描述】:
我正在制作一个小型 asp.net mvc 应用程序,它允许我为我和我家的人设置菜肴时间表。我有一张名为 DishDates 的表,它记录了谁在哪一天有一道菜。它当前包含 3 列(DishDateId、PersonId 和 Date)。 DishDateId 是 PK,PersonId 是 Person 表的 FK,Date 是上菜的日期。
在任何一天,我们只有一个人上菜。 PersonId 与日期相关联。我的应用程序可以自动生成当月的菜肴日历。现在,您还可以进入并重新生成一个已经创建的一个月的新菜列表,应用程序会删除该月的现有记录,然后创建它们。每次我这样做时,DishDateId 字段的值都会增加,因为它是一个标识列。
我知道这不会成为真正的问题,因为我仍然可以拥有超过 20 亿行,这足以比这个应用程序的生命周期更长。但是,在这种情况下,不使用身份列而只使用 PersonId 和 Date 字段并将 Date 作为 PK 会更聪明吗?我觉得 Identity 列有点碍事,或者没有必要。
【问题讨论】:
标签: sql-server asp.net-mvc database tsql database-design