我正在创建一个与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”。
有什么想法吗?
答案 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)
据推测,这是一个自由文本元素,没有相关的域值验证,即用户可以在此输入任何内容,这将是一个可接受的值。在我们的数据字典中,我们倾向于称这些'笔记'。