- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个数据库,其中有一个表 email_eml,该表存储 3 个属性 name_eml、host_eml 和 domain_eml。哪个存储电子邮件名称、网站名称和域名(如 .com .net 等) 它不存储 @ 或 .在任何变量中。这给了我一些灵 active (例如检查平均名称长度(@符号之前)会更快)。我可以收集一些有关电子邮件名称的统计信息,我还可以从 name_eml 属性创建用户名。然而,当人们提交电子邮件或者我必须比较整封电子邮件时,这也是一个负担。这将使我存储额外的 @ 和 .符号,让我在想要收集统计数据时通过脚本分隔名称。
我想知道将电子邮件存储在单列中而不是 3 列中是否更好。其中一种方式更合适还是更规范?
我希望答案包括两种存储电子邮件地址的方法的优缺点。 (即使将电子邮件存储在 3 列中并没有太多优点)
最佳答案
It doesnt store @ or a . in any of the variables.
嗯,应该; cat.call@somedomain.com
是合法的电子邮件地址。
I wonder if its better to store the email in a single column instead of the 3 columns. Is one of the ways more proper or more normalized way?
这与标准化没有任何关系。它与复杂的数据类型有关。
关系模型允许任意复杂的数据类型。常用的复杂数据类型是时间戳,通常包括年、月、日、时、分、秒和微秒。
给定时间戳,有时您可能只需要知道日期,有时您可能只需要知道年份或小时。在处理复杂数据类型时,关系模型给数据库管理系统带来了特定的负担。对于复杂的数据类型,需要 dbms 要么完整地返回它,要么提供返回其各个部分的函数。关键是,如果用户只想要时间戳中的小时,则用户不需要编写代码来获取它。
SQL dbms 对时间戳有很好的支持;我熟悉的每个 dbms 都提供返回时间戳各个部分的函数。它们都没有对电子邮件地址的 native 支持。
在 SQL 平台上,您至少有两种选择来保持数据库接近关系模型。您可以编写可合并到数据库服务器中的函数(如果您的 dbms 和编程技能允许),或者您可以将数据类型分成多个部分,以便每个部分都可以像任何其他值一样完整地进行寻址。
虽然可能有一些数据类型可以像这样拆分(街道地址可能是其中之一),但我确实没有看到任何令人信服的理由来拆分电子邮件地址。
This allows me some flexibility (for example checking average name lenght(before the @ symbol) will be faster) . I can collect some statistics on email name, I can also create usernames from the name_eml attribute.
虽然这是事实,但现在我无法想象用户名的平均长度有什么有趣的地方。我不认为你的任何理由令人信服,但你比我更了解你的申请。
如果您确实需要对各个部分进行大量操作,那么将各个部分分开更有意义。更多“正常”客户端代码应该通过连接各个部分的 View 来访问电子邮件地址。 (连接比在运行时解析电子邮件地址容易很多。)
关于mysql - 将电子邮件存储为三个属性与一个属性(用于统计目的),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11062738/
你能比较一下属性吗 我想禁用文本框“txtName”。有两种方式 使用javascript,txtName.disabled = true 使用 ASP.NET, 哪种方法更好,为什么? 最佳答案 我
Count 属性 返回一个集合或 Dictionary 对象包含的项目数。只读。 object.Count object 可以是“应用于”列表中列出的任何集合或对
CompareMode 属性 设置并返回在 Dictionary 对象中比较字符串关键字的比较模式。 object.CompareMode[ = compare] 参数
Column 属性 只读属性,返回 TextStream 文件中当前字符位置的列号。 object.Column object 通常是 TextStream 对象的名称。
AvailableSpace 属性 返回指定的驱动器或网络共享对于用户的可用空间大小。 object.AvailableSpace object 应为 Drive 
Attributes 属性 设置或返回文件或文件夹的属性。可读写或只读(与属性有关)。 object.Attributes [= newattributes] 参数 object
AtEndOfStream 属性 如果文件指针位于 TextStream 文件末,则返回 True;否则如果不为只读则返回 False。 object.A
AtEndOfLine 属性 TextStream 文件中,如果文件指针指向行末标记,就返回 True;否则如果不是只读则返回 False。 object.AtEn
RootFolder 属性 返回一个 Folder 对象,表示指定驱动器的根文件夹。只读。 object.RootFolder object 应为 Dr
Path 属性 返回指定文件、文件夹或驱动器的路径。 object.Path object 应为 File、Folder 或 Drive 对象的名称。 说明 对于驱动器,路径不包含根目录。
ParentFolder 属性 返回指定文件或文件夹的父文件夹。只读。 object.ParentFolder object 应为 File 或 Folder 对象的名称。 说明 以下代码
Name 属性 设置或返回指定的文件或文件夹的名称。可读写。 object.Name [= newname] 参数 object 必选项。应为 File 或&
Line 属性 只读属性,返回 TextStream 文件中的当前行号。 object.Line object 通常是 TextStream 对象的名称。 说明 文件刚
Key 属性 在 Dictionary 对象中设置 key。 object.Key(key) = newkey 参数 object 必选项。通常是 Dictionary 
Item 属性 设置或返回 Dictionary 对象中指定的 key 对应的 item,或返回集合中基于指定的 key 的&
IsRootFolder 属性 如果指定的文件夹是根文件夹,返回 True;否则返回 False。 object.IsRootFolder object 应为&n
IsReady 属性 如果指定的驱动器就绪,返回 True;否则返回 False。 object.IsReady object 应为 Drive&nbs
FreeSpace 属性 返回指定的驱动器或网络共享对于用户的可用空间大小。只读。 object.FreeSpace object 应为 Drive 对象的名称。
FileSystem 属性 返回指定的驱动器使用的文件系统的类型。 object.FileSystem object 应为 Drive 对象的名称。 说明 可
Files 属性 返回由指定文件夹中所有 File 对象(包括隐藏文件和系统文件)组成的 Files 集合。 object.Files object&n
我是一名优秀的程序员,十分优秀!