0

我有一个实体:Participants. 的属性之一participantsInterest。有 4 个有效值(dbiahitother)。如果other选择“”,我需要能够捕获该描述,但我似乎无法弄清楚最好的方法是什么?

我将有一个验证规则Participant Interest,它将具有上述 4 个值。尽管我知道大多数响应将是前三个响应之一,但我是否可以在实体中放置描述(见下文),或者我应该创建一个单独的实体来捕获其他实体并与之具有识别关系Participant

    Participant
    Participant ID
    Participant First Name
    Participant Last Name
    Participant Interest {db, ia, hit, other}
    Participant Other Interest Description


    Other
    Other Description

我正在寻找什么是允许的以及什么是最佳实践,因为我有几个具有相似格式的实体。

4

1 回答 1

0

我在每个数据库设计中都发现了这种困境,根据我的经验,最好选择您的第一个选项并将所有内容放在同一张表中。它并不完美,因为您将有许多行的空值,但它会使您的查询更容易和更快(您不必进行连接),会降低复杂性(少一张表)并且不会影响存储空间(如果将另一列定义为 varchar,则如果它为 null,则 def 将不占用任何空间)。

对于一些复杂的情况,我会创建一个额外的表来实现 1-0..1 关系,但对于这个简单的情况,我会说最好在主表中创建一个可为空的 OtherDescription 属性。

类似的讨论:

1:1 或 1:0 关系的标准化

于 2013-06-07T14:21:01.593 回答