我不能告诉你什么对你最好,但总的来说,中间名的概念并没有很好地映射到许多文化.即使在西方(欧洲和北美),它最终会产生比它解决的问题更多的问题.放弃中间名可能更好,并且只使用两个字段作为名称:GivenNames和FamilyNames.在每个字段中,您必须允许名称包含多个名称字,并允许使用非常长的名称.名称是指作为个人给予孩子的名称,即个人姓名,姓氏来自家庭和/或家族.通常,我们在西方认为的名字是中名和中名,姓氏是姓氏.
例如,西班牙语命名惯例是有两个姓氏 - 父姓和母姓.问题是进行数据输入的人习惯于使用一个名字,一个中间名和一个姓的概念,将其中一个姓名放在中间名称槽中,这是不正确的.
阿拉伯名字遵循类似于你描述你的问题是什么(见公约http://en.wikipedia.org/wiki/Arabic_name#Arab_family_naming_convention).在给定的/家庭模型中,诸如"Saleh ibn Tariq ibn Khalid al-Fulan"(Saleh,Tariq的儿子,Khaled的儿子,al-Fulan家族)的名称将"Saleh"映射到给定的名称,并且ibn Tariq ibn Khalid al-Fulan"以姓氏命名.但是,如果这些类型的名称都是您的系统将处理的,则可以使用三个字段:given/personal name,father name和family/clan name.只有一个字段用于名称是另一种选择.
最大的问题是让数据输入人员在处理来自不同文化和命名惯例的人时,能够始终如一地正确地映射名称.无论您选择哪种模型存储名称,它们都会错误地从命名约定与其自身不同的文化中输入名称.在编写名称查找时,这需要更多的编程工作来解决这个问题.
此网页讨论了许多与名称相关的问题:
http://www.w3.org/International/questions/qa-personal-names