将用户全名存储在数据库中时,最好的做法是什么?1或2列?

Lon*_*Guy 5 php mysql database ruby-on-rails

将first_name和last_name存储在2个单独的列中是否更好?

或者将两个存储在一列是否可以?

Mat*_*son 9

只有你知道,真的.这取决于你是否需要单独取出名称的这些部分.

在一列中存储名字和姓氏不是可逆操作(在"Ellie May Jones"中,是"May"的姓氏或名字的一部分吗?)

此外,您将要处理哪些不同的文化?不是每个文化中的每个人都有两个名字 - 请参阅维基百科关于姓氏的文章,了解你可能会开放的蠕虫病毒:)

一般来说,我习惯于单独存储给定系列和系列名称的系统,这使您有可能在以后操作该数据,但后来我主要处理一个相当小的地理区域,人们习惯于被要求提供一个名字.和姓.此外,我运行的系统需要根据他们的姓氏搜索人员(如果你可以索引一个单独的列,则更容易)并向开始"亲爱的史密斯小姐......"的人发送信件.

您可能还想考虑是否需要"首选"名称 - 例如,我的名字是"马修",但我更喜欢被称为"马特".并且有很多人在解决这些问题时更喜欢其他人使用他们的中间名.是否需要捕获首选名称和"真实"名称取决于您的要求......

如果我是你,我会从两个专栏开始,假设一个相当正常,英语的文化偏见.它不是很多代码/存储开销,如果你发现一些紧迫的原因,你可以在以后轻松转换为单个列.


Inc*_*ito 6

当然,只要确定你可以与德国国防部长打交道,你想要的最后一件事就是引起军队的一幕,因为你的代码无法处理他的全名......

Karl Theodor Maria Nikolaus Johann Jacob Philipp Franz Joseph Sylvester Freiherr von und zu Guttenberg,猜怎么着?他的"姓氏"是von und zu Guttenberg.他也不是一次性的案子.德卢卡是一个姓氏,由一个空间隔开.

我有一个祖母,在匈牙利习俗中,姓氏实际上是你的名字.Sztaki Helen是她的全名,除了她的兄弟可能被称为Sztaki Fred,她的父亲名叫Sztaki Greg.我的中国朋友戴伟也有类似的情况,戴也是他的姓.

事实证明,名字真令人困惑.而不是研究和规划所有这些不同的规则,只是为了弄清楚某人的所谓,特别是当你以"名字"和"姓氏"为基础时(不要叫我的祖母海伦太太,这是她的名字退一步,想一想为什么你真的需要收集关于我的所有这些个人信息.

通过解释并非所有文化都按字母顺序对名称进行排序,或者他们甚至没有罗马字母表,我还要继续完全打击你的想法,但是不要让它们去那里.

你真的需要我的个人信息吗?可能不是.在某些情况下,你会,在大多数情况下......你不会.不要求它.

如果你真的 真的需要它,问苏尔名称和名字(或多个).将其存储为两列.