Sql server 如何在Sql server表中存储签名块(包括格式)?

Sql server 如何在Sql server表中存储签名块(包括格式)?,sql-server,database-design,Sql Server,Database Design,我的任务是创建一个表,存储每个用户名的电子邮件签名。问题是,我应该如何存储签名块?我可以使用常规的varchar类型,但是如何存储格式化元数据呢 欢迎提出任何意见或建议。 谢谢 HTML、RTF、XML。标准选择有多种 注:“电子邮件签名”不是“数字签名”。“数字签名”一词有着特定的含义,它意味着一种签名,以确保(对于电子邮件而言)它来自真实的发件人,并且没有被篡改。我建议按照您最初的想法--varchar(max)。这将允许您存储基于ASCII的签名。这包括纯文本、RTF或HTML签名 如果用

我的任务是创建一个表,存储每个用户名的电子邮件签名。问题是,我应该如何存储签名块?我可以使用常规的varchar类型,但是如何存储格式化元数据呢

欢迎提出任何意见或建议。
谢谢

HTML、RTF、XML。标准选择有多种


注:“电子邮件签名”不是“数字签名”。“数字签名”一词有着特定的含义,它意味着一种签名,以确保(对于电子邮件而言)它来自真实的发件人,并且没有被篡改。

我建议按照您最初的想法--
varchar(max)
。这将允许您存储基于ASCII的签名。这包括纯文本、RTF或HTML签名


如果用户希望嵌入图像(即,不是图像的链接),则您必须确定调用者在存储图像之前和从表中读取图像之后将这些图像转换为Base64或其他图像的方法。

根据我的发现,您基本上有两种选择:

1) 将格式化的签名数据转换为二进制,并将其存储为BLOB
2) 与其将签名本身保存在数据库中,不如将其保存为文件,并在数据库中存储对该文件位置的引用。

使用varchar(max)或任何适当的长度限制


否则,唯一真正关心的是,在将html粘贴到数据库中之前,您可能希望确保html是html编码的。(即,替换
我的另一个想法是,你可以设计一个特定的电子邮件签名模板,然后让人们指定字段,如用户名、引号、头像、对齐方式等,然后让他们在“签名编辑器”中修改签名。这样你就可以存储“数据”而不是渲染。因此可以存储如下内容:

<signature>
    <username>chama</username>
    <avatar href="http://url to my image"/>
    <quote>A bird in the hand is not in the nest</quote>
</signature>

查马
鸟在手不在巢
它可能看起来像:


查马
鸟在手不在巢

在您决定如何存储之前,请确定您希望对字符数设置的限制,因为这可能会增长得很快。此外,请与您的最终用户详细说明您将允许使用哪种签名,例如HTML、RTF、纯文本。谢谢。标记已被编辑。我不认为我在谈论数字签名,但我不知道还能叫它什么。