我的要求是将一系列的电子邮件ID存储在单个列中,最好的数据类型是什么?我的列名为EmailTo、EmailCC、EmailBCC,我需要在其中存储ID列表。此外,请帮我确定该数据类型的大小。我正在使用SQL Server。
我的要求是将一系列的电子邮件ID存储在单个列中,最好的数据类型是什么?我的列名为EmailTo、EmailCC、EmailBCC,我需要在其中存储ID列表。此外,请帮我确定该数据类型的大小。我正在使用SQL Server。
本地部分使用64个字符 + @ + 域名使用255个字符的 NVARCHAR(320)
最为适合。
您可以参考此链接获取更多信息。
关于电子邮件,请使用数据类型VARCHAR[(n)]
根据MSSQL Server 2008的定义
VARCHAR[(n)]:描述单字节字符的可变长度字符串。与CHAR数据类型相反,VARCHAR数据类型的值以其实际长度存储。此数据类型有两个同义词:CHAR VARYING和CHARACTER VARYING
VARCHAR
(而不是 NVARCHAR
)。 - Rowland Shaw存储列表(任何类型的列表,不仅仅是电子邮件ID)的最佳数据类型是表格。简单的表格。
例如,如果它是整数列表,则表格将具有一个int
列。
这就是关系型数据库管理系统的用途 - 它们被设计用于在一堆表中存储数据。
EmailsTo
、EmailsCC
、EmailsBCC
。您的表格结构将取决于您的EmailID
是什么类型以及您可能需要的其他相关信息(列)。varchar
列中。 - Vladimir Baranovnvarchar(max)
也是足够的。如果您需要在“收件人”中进行大量搜索,而很少在“密送”收件人中进行搜索,那么将它们分开是有意义的。这个问题缺乏细节,无法回答。我应该忽略它,但被“列表”一词所吸引。 - Vladimir Baranovnvarchar(max)
中是一个好主意。当您只需要“原样”存储文本时。当您不打算在SQL查询中将此文本拆分为子组件时。这就是nvarchar(max)
和varbinary(max)
的用途。 - Vladimir Baranovnvarchar(max)
的blob。还有一些情况,您最好进一步规范化并将其存储为单独的表格,每行一个收件人。这个问题没有提供足够的细节来选择任何一种变体。理想情况下,在澄清之前不应该回答它。 - Vladimir Baranov对我来说,似乎是数据类型问题。回答你的问题,在我看来,VARCHAR(MAX)是可以存储多达8k个字符甚至更多(如果你强制转换),但这不是正确的做法。
你可以创建一个常用组,并列出所有你想要发送电子邮件的收件人的电子邮件地址。这样做既不会占用太多的数据类型空间,也可以根据你的评论将所有人都包括在该组中,因为你说你需要将邮件发送给这些人。
VARCHAR(MAX)
可以超过8Kb。 - Rowland Shaw
XML path('')
或其他技术进行连接。 - David דודו Markovitz