需要帮助命名字段(和表)

时间:2009-06-07 03:57:08

标签: sql

我正在创建一个与Contacts表相关的新表(我存储名字,姓氏等)。

表格包含:

int Id  (PK, Identity)
int ContactId  (FK)
int Type (this identifies whether the following is an email, tel, fax etc.)

nvarchar(40) [I need a name for this one]

nvarchar字段基本上存储为abc@abc.com或+1 567 555-2934 x 12,或者其他任何人可以输入的方式来联系其他人。电子邮件,电话,IM名称,传真号码等。

我不知道如何命名该字段或包含此内容的表。我不能将其命名为“emailAddress”,因为它可能是电话号码,反之亦然。我当然不想将它命名为“emailOrPhoneOrXYZ”。

有什么想法吗?

10 个答案:

答案 0 :(得分:3)

我在正在开发的系统中遇到类似的问题。

因此我们将表格ContactComplements和字段命名为Value

答案 1 :(得分:1)

好吧,我可能会先重命名“Id”和“type” - 这些都不是很具描述性。 “ContactInfoID”和“ContactInfoType”怎么样?最后一个字段可以合理地标题为“ContactInformation”。

你是对的,你不应该使用像“emailOrPhoneOr ...”这样的愚蠢名称,因为这会阻止你将来存储其他类型的联系信息。

另外,如果你的rdbms支持tinyint,那么tinyint对于你的“type”字段来说可能已经足够大了。

答案 2 :(得分:1)

Contacts表格的上下文中,您可以考虑Detail字段。

答案 3 :(得分:1)

理想情况下,在设计关系数据库时,应尽可能避免在同一字段中存储不同类型的信息。

有一点需要考虑,有时候对数据进行非规范化是有意义的,在这种情况下你可能应该考虑这一点。 (见http://en.wikipedia.org/wiki/Denormalization

至少,我认为使用至少2个表是有意义的,一个用于电子邮件/ IM,一个用于电话。对于电子邮件/ IM表,添加标志,指示地址是电子邮件还是IM(或两者都设置了两个标志),因为雅虎和其他人使用电子邮件作为IM ID。

答案 4 :(得分:1)

--table-per-class strategy:

--baseclass
table ContactItem
    column Id --pkey

--subclass
table ContactItemEmail
    column Id --pkey, fkey ContactItem.Id
    column Email

--subclass
table ContactItemPhone
    column Id --pkey, fkey ContactItem.Id
    column Phone

答案 5 :(得分:1)

我将表格ContactDetails和字段ContactString命名为。

答案 6 :(得分:0)

我只想把它命名为Contact。它足够通用,无论其中包含的实际信息类型如何,它都可以应用,但也暗示它用于联系某人。

答案 7 :(得分:0)

在维护与CONTACT表关联的键/值对时,可以将其命名为CONTACT_PROPERTIES。 “价值”将与所涉及的领域一样好。

答案 8 :(得分:0)

MainContact

答案 9 :(得分:0)

据推测,这是一个自由文本元素,没有相关的域值验证,即用户可以在此输入任何内容,这将是一个可接受的值。在我们的数据字典中,我们倾向于称这些'笔记'。