为什么我不能将电子邮件正文存储在关系数据库中?
Why can't I store email bodies in a relational database?
假设我定义了一个 table users
,其中包含一个电子邮件消息列,我将整个消息转储为一个字符串。
这会很丑陋和凌乱,但它有用吗?这样做的后果是什么?
我问是因为我读到非结构化数据不能存储在关系数据库中,并且电子邮件正文是高度非结构化的,但它本身只是一个字符串。
是的,您可以将整封电子邮件放入数据库中的 "text" 或 "string" 列。
更好的是,许多数据库都支持文本搜索功能。因此,您可以构建文本索引并能够有效地搜索电子邮件正文。
缺点是行较大,使用 table 会减慢速度。如果电子邮件重复,那么您可能需要一个单独的 table 用于电子邮件,并使用一个 id 表示文本。另一个 table 会显示哪些用户收到了哪封电子邮件。
假设我定义了一个 table users
,其中包含一个电子邮件消息列,我将整个消息转储为一个字符串。
这会很丑陋和凌乱,但它有用吗?这样做的后果是什么?
我问是因为我读到非结构化数据不能存储在关系数据库中,并且电子邮件正文是高度非结构化的,但它本身只是一个字符串。
是的,您可以将整封电子邮件放入数据库中的 "text" 或 "string" 列。
更好的是,许多数据库都支持文本搜索功能。因此,您可以构建文本索引并能够有效地搜索电子邮件正文。
缺点是行较大,使用 table 会减慢速度。如果电子邮件重复,那么您可能需要一个单独的 table 用于电子邮件,并使用一个 id 表示文本。另一个 table 会显示哪些用户收到了哪封电子邮件。