Ad ve soyadının ayrı ayrı modellenmesi


32

Yeni bir sistem tasarlarken birisi hangi argümanları dikkate almalı ve bir kişinin adını bir alan olarak mı yoksa ilk / soyadı olarak mı ayrı ayrı saklamalıdır?

Tek alan için avantajlar:

  • Basit kullanıcı arayüzü
  • Çok uzun bir isme sahip bir kişinin ismini girmeye çalışırken belirsizlik yok (genellikle soyadı / adının ne olduğu belli değildir).
  • Başlıkları tutarken daha az karmaşıklık (örneğin, "MD" veya "Dr." girmek için ayrı bir alana ihtiyaç duyulmaz)

Bölünmüş alanın avantajları:

  • Kişiselleştirilmiş iletişim mümkündür "Sayın Bay X" veya "Sayın Julie"
  • Tüketilen bir web servisi ayrı bir ad / soyadı gerekiyorsa, kolayca sağlanabilir.
  • Kesin tanımlama gereklilikleri olan herhangi bir endüstri için daha iyi seçim (örneğin, tıp, devlet, vb.)
  • Her zaman tek saha alternatifine geri dönebileceğiniz için daha güvenli seçim

Yukarıda listelenmemiş başka bir argüman görüyor musunuz ?

Güncelleme: soru, her bir çözüm için hangi ek (= soruda listelenmemiş) argümanlar listelenebilir Sanırım olası artılar ve eksiler yerine fikir vermek tartışmayı yanlış yönlendiriyor. Her geliştirici bu sorunla ilgili kararını vermelidir, bu sorunun amacı, gerektiğinde değerlendirilebilecek önemsiz tartışmaların bir listesini oluşturmaktır.


11
Bu isimlerle ne yapmaya çalışıyorsun? Yasal şartlarınız var mı? Kullanıcının adının görüntülenmesinden başka bir sonuç var mı ?
Darkhogg

9
Ad / soyad ayrımı, "Cher" gibi yalnızca tek bir adı olan kişileri desteklemez.
JacquesB

77
Aşağıdaki makaleyi okumanızı tavsiye ederim: kalzumeus.com/2010/06/17/… İsimler hakkında düşünürken gerçek bir göz açıcı.
Pieter B

10
Bu soruyu Kullanıcı Deneyimi hakkında sormayı düşünebilirsiniz , buradaki topluluk, aslında bu kullanıcı arayüzü sorununa farklı bir bakış açısı sunabilir.
11684 11

9
@PieterB Bu makaledeki bazı hususlar sorgulanabilir ve bazen işleri halletmek için varsayımlarda bulunmanız gerekebilir. Bu makale isimlerin nasıl kullanılacağına dair yararlı bir tavsiye sunmuyor. Bir ad unicode olmayan karakterler içeriyorsa, kullanıcının resim yüklemesine izin veren ne yaparsınız? Görsel olmayan yönler varsa - sesli bir videoya izin verirseniz ne olur? Bir isim performans sanatıysa ve sadece gece yarısı Hong Kong'da yapılabilirse? Bir noktada, kullanıcı tabanınızın asla karşı karşıya kalmayacağı teorik köşe durumlarda ortaya çıkmak yerine gerçekleşmeli ve problemleri çözmelisiniz.
Monica

Yanıtlar:


50

Adı ve soyadı yararlı kavramlar değildir. İsimler farklı ülkelerde farklı işler. Asya ülkelerinin çoğunda, önce soyadı yazılır, ancak yine de sıralama için kullanılır - bu nedenle adı ilk isme koyabilirsiniz ve sıralama yanlış olur, soyadı da görüntülenir ve görüntülenir. Ve sonra İzlanda gibi ülkeler var, aile isimlerini hiç kullanmıyorlar, fakat babasına verilen isim. Yani sadece verilen isme göre sıralarlar.

“Verilen ad” ve “soyad” (veya “aile adı”) terimleri bu bağlamda daha iyidir, ancak kesinlikle gerekli olmadıkça (yani pasaportlar gibi resmi belgelerde bunlara sahip, o zaman onlara ihtiyaç duyarsınız) onlardan kaçınırım. sadece işleri daha karmaşık hale getirirler.

  • Kişiselleştirilmiş iletişim mümkündür "Sayın Bay X" veya "Sayın Julie"

Bunun dışında, verilen kişiyi adlarıyla mı soyadıyla veya neyle çağırıp çağırmayacağınız konusunda hiçbir fikriniz yoktur. Ve beni suçlayıcı olan dillerde başlatmaya çalışmayın - suçlayıcıyı genel olarak aday göstermekten alamazsınız . Hayır, kullanıcıya ne araması gerektiğini sorarsanız daha iyi olur.

  • Tüketilen bir web servisi ayrı bir ad / soyadı gerekiyorsa, kolayca sağlanabilir.

Eğer . Başka bir servise bağlıysanız, kötü tercihlerine kilitli kalırsınız. Kendi tasarımlarınız için bir avantaj değil.

  • Kesin tanımlama gereklilikleri olan herhangi bir endüstri için daha iyi seçim (örneğin, tıp, devlet, vb.)

Hayır, bunlar için yanlış bir seçim. Resmi belgeler genellikle daha az belirsiz olan “verilen ad” ve “soyad” (veya “aile adı”) terimlerini kullanır.

  • Her zaman tek saha alternatifine geri dönebileceğiniz için daha güvenli seçim

Aslında, Asya isimlerindeki belirsizlik nedeniyle, yapabileceğiniz kadar net değil.


2
Uygulama dünyanın farklı bölgelerinde kullanılıyorsa, alan etiketlerinin nasıl birleştirildikleri / kullanıldığı ile birlikte yerelleştirilmeleri gerekir.
JeffO 11

5
@JeffO, asıl mesele şu ki, aynı sistemde farklı ülkelerden insanlara sahip olmanız oldukça muhtemeldir, bu nedenle bir sistem oluşturmanız ve farklı kültürlerden isimleri nasıl ekleyeceğinin bir yolunu bulmanız gerekir. . Gerçekten ihtiyacın olmadığı sürece tavşan deliğine girme.
Jan Hudec

4
@ IstvanDevai, Kaliforniya'da bir sözleşmenin geçersiz ilan edildiği yasal bir dava vardı çünkü kredi yasaları "soyadı" gerektiriyordu. Kişinin ikili bir İspanyol soyadı vardı, ancak soyadı istendiğinde, yaygın olan ilk (baba) soyadı verildi. Diğer taraf tahsilat davalarını kaybetti çünkü sözleşmedeki isim "soyadı", yani tam adının sonundaki isim değildi. İlk / sonun nasıl kafa karışıklığına neden olduğuna ve verilen isimler / aile isimleri ile tamamen eş anlamlı değildir.

6
@Casey - orta isimler verilen isimler alanına dahil edilmelidir, çünkü bunlar: ikincil verilen isimler. Her seferinde bir dolarım olsaydı Orta adı olmayan bir İspanyol kişiyi gördüm, fakat ikili bir soyadı ilk (ve en önemli) soyadını ikinci isim alanına sürdü, çoktan emekli oldum. Bir kişiyi ne arayacağınızı bilmek istiyorsanız, adından ayrı bir alanınız olsun. Öyleyse Bartholomew Frank Edward Smith Wellington, onlara Bart demeyi söyleyebilir. İngilizce konuşabiliriz, ancak burada İngilizce konuşamayan yerlerden insanlar var ve adları da giriliyor.

4
-1. Cevap tamamen yanlış olmasa da, eldeki soru için pek bir anlam ifade etmiyor. OP, insan adları için bir alan veya iki alan kullanmak için daha fazla argüman arar. “İlk / son” veya “verilen / sur” olarak adlandırılan odak noktası değil, sadece OP'nin aklındaki etiketlerdir. Diğer tüm noktaları son derece bana opinionated görünüyor ve yaratma ve büyük müşteriler için uygulamaları dağıtmak ile benim kişisel deneyim, OP'nin varsayımlar tamamen normaldir ve sadece ne yapmak bu şekilde. Bu cevap sadece sorunun parametrelerini uzaklaştırmaya çalışır.
AnoE

31

Önemli olan tek argüman sisteminizin gereksinimleri nelerdir?

Sadece bir kültürle uğraşmak zorunda mısın? Eğer öyleyse, o kültüre uygun. Aksi takdirde uluslararasılaştırma için planlar yapın (diğerlerinin de belirttiği gibi).

Devlet formları, sağlık hizmetleri veya diğer yasal / sistem gereksinimleri ile ilgilenmek için veri almanız gerekiyor mu? Neyin dikte ettiğini takip et. Bu, ad ve soyad anlamına geliyorsa, yapın. Farklı bir şey ifade ediyorsa, bunu yap.

Ad ve soyadına sahip bir API için bir gereksiniminiz var mı (ya da YAGNI'yi dikkate almamayı istemek yeterince makul mu?) Orada mantıklı olanı yap.

Kişiselleştirilmiş iletişime ihtiyacınız varsa, sadece birisine tercih ettikleri ismi sormak ve saklamak makul olur mu?

Sisteminizin gereksinimleri ne yaptığınızı belirlemelidir. Yapman gerekeni yap ve gerisini YAGNI ile yap.


7
Artık "tek kültür" diye bir şey yoktur. En küçük topluluklarda bile kültürel normlar ve diller karışık.
BobDalgleish

7
@BobDalgleish Doğru, ancak bazen önemli değil. Bazen birden fazla kültürü desteklemenin maliyeti, iş insanlarının sadece hayır demesini sağlar.
Becuzz

9
@BobDalgleish Uygulamanın geliştirilmekte olduğu pazarda hangi kültürün baskın olduğu tahmin ediliyor? Bunun aslında gizemli ya da nadir olduğunu sanmıyorum.
Casey,

3
@BobDalgleish - "kültür" alakasız. Belgeler verildiğinde kimse kültürünüzü sormaz. Yalnızca Sırbistan’ı desteklemem gerekirse (şu anda bulunduğum yerde), bu ülkede yayınlanan her belgede tanımlandığı gibi ad ve soyadı eklerdim, o kadar. Kültürünüzün ne olduğu önemli değil. Pasaportunuz, ehliyetiniz vb. Adınız, soyadınız, süreniz olacaktır.
Davor Ždralo

2
@icirellik Ne şekilde yanlış? Evreni mükemmel bir şekilde modellemeye çalışıyorsanız, bu şeyler (uzunluk sınırları vb.) Yanlış mı? Kesinlikle. Ama hiçbir zaman evreni ve birisinin bir isim seçmek isteyebileceği her şekilde kusursuz bir şekilde modellenmesi istenmedi. Klingon adlarını mı hesaplarım? Hayır. Ama neden olmasın? Biri bunu bir gün yapabilir (eğer birileri şimdi yaparsa dürüstçe beni şaşırtmaz). Ancak, sadece sizin modelinizle çalışmayacak bazı şeylerin olacağının bildiğiniz bir nokta var. Ve her ihtimalin üstesinden gelmek için ekstra dev zaman buna değmez. (devam ...)
Becuzz

5

Adları görüntülemek ve / veya kullanmak için birden fazla yolunuz varsa, muhtemelen ayrı alanlara ihtiyacınız olacaktır. Veri girişi ile birlikte, kullanıcıya nasıl kullanılacağını göstermek için geri bildirimde bulunabilirsiniz. Bunları nasıl birleştireceğiniz, gelecekte tek bir alana dönüştürmeye neden olabilir.

Gösterilen bazı etiketler var: Selamlama veya Görünen Ad: Adı + Soyadı Düzenleme / Sıralama: Soyadı, Adı

Gelecekte bunun nasıl kullanılacağından emin değilseniz, bölünmüş isimlerle başlayın ve sonra gerçekten ihtiyacınız olan şeyin bu olduğunu anladığınızda, onları tek bir alanda birleştirebilirsiniz. Tek bir ad alanını ad ve soyadına bölmek için bir algoritma yazmak zor değildir, ancak birkaçında hata yaparsınız ve insanlar adlarıyla ilgili hatalardan hoşlanmazlar. Bölünmüş alanlarla, kullanıcılar nasıl kullanıldığını gördüklerinde adlarını nasıl gireceklerini ayarlayabilirler. Bunları kalıcı bir tek ad alanında birleştirmek daha az risklidir.


5

@JanHudec'in söylediklerine çok katılıyorum, bununla ilgili biraz daha genişlemek istiyorum:

  • Gerçek gereksinimlerinizin ne olduğunu bilmeniz gerekir, ancak bilgileri bir araya getirdikten sonra ayırmaktan daha bilgiyi birleştirmek daha kolaydır.
  • Kurallar yerellere ve kültürlere göre farklılık gösterebileceğinden, sıralama her zaman zor olacaktır.
  • Birçok kültür sizinkiyle eşleşmiyor, bu da kötü varsayımlara yol açıyor. (Bu Jan'in en büyük noktası)

Terminoloji önemlidir

Gibi terimler verilen ad ve soyadı veya soyadı semantik anlam varsa ve veritabanı her zaman verilerinizin semantiğini yansıtmalıdır. Gibi terimler ilk adı ve soyadı genellikle İngilizce ve nasıl isimleri işin Amerikan fikirlere dayanan, pozisyonel anlama sahiptir. Verilerinizin semantiği için uygun terminolojiyi kullanın.

Onu ne kadar kırman gerekiyor?

Kavramları vardır başlığı (Bay Dr. Bayan vs.) ya da sıralı (Jr, Sr, III, vb) ve hatta sertifikalar bağlı önemli olabilir (Doktora, MS, PCAM, vs.) bağlam ve amaç.

Birçok yerelde çoklu aile isimleri kavramı (baba ve anne) vardır ve bazılarının hiçbiri yoktur. Formları doldururken, bazen insanlar hangi ismi kullanacakları konusunda zor seçimler yapmak zorundadırlar, örneğin Amerikan soyadı için "soyadı" için baba soyadı kullanarak ya da babanın ismine dayanan soyadı (Janson) ).

Amerika'da bir veya daha fazla orta isme sahip olmak yaygın olsa da, ailenizin dışında genellikle göz ardı edilir.

sınıflandırma

Sıralama adı için ayrılmış bir alana sahip olmanıza yardımcı olur. Bu şekilde, kaydı oluştururken kuralları belirsiz hale getirebilirsiniz. Ayrıca uluslararası sınırlar boyunca isimlerin doğru sıralanmasını sağlar.

Ortak Uygulamalar

Gerçek gereksinimleriniz isimler hakkında ne kadar doğru olmanız gerektiğini belirler. Bir hükümet veya bankacılık web sitesi oluşturuyorsanız, adları saklamak ve işlemek için Facebook gibi resmi olmayan bir şeyden daha çok gereksiniminiz vardır.

Gayri Rehber

  • Kullanıcının nasıl bilmek istediğini açıklayan bir alanınız olsun
  • Sıralama ve görüntüleme bu adı kullanır

Yarı Resmi Yönergeler

  • Takma ad için bir alan veya kullanıcının nasıl ele alınmasını istediği
  • Biri verilen ad için diğeri soyadı için iki alanın olması gerekir (soyadı isteğe bağlı olmalıdır)
  • Yerel ayara ve verilen / soyad combo'ya göre bir sıralama alanı hesaplayın
  • Kullanıcıya doğrudan hitap ederken takma adı kullanın.
  • Kişileri listelerken resmi adı kullanın

Resmi Kurallar

  • Bunlar, desteklediğiniz kurumun mevcut politika ve prosedürleri tarafından belirlenir.
  • Destekleyeceğiniz maksimum ad parçası sayısı kadar, alanların anlamsal olarak adlandırılmış alanlarına ihtiyacınız var.
  • Yarı resmi durumda olduğu gibi sıralama işleyen bir sıralama alanı ekleyin
  • Ekran ayrıca genellikle mevcut politikalar ve prosedürler tarafından belirlenir. Onlara kendini tanıtmalısın.

Katibi incelemek ister misiniz? Belki bir şey özledim?
Berin Loritsch

Bu bana kapsamlı ve burada verilen en pragmatik tavsiye gibi görünüyor.
Jesse Clark

4

@JanHudec'in belirttiği ve kabul ettiğim şeylerin yanı sıra, birçok ülkede insanların birden fazla soyadı bulunduğunu, bu nedenle tek bir soyadı alanının alakasız olabileceğini de belirtmek gerekir. İspanya'da insanların iki soyadı vardır ve duruma göre bunlardan sadece birini veya ikisini kullanırlar.

Ayrıca, bazı kültürlerde olduğu gibi, insanları soyadlarına göre çağırırken kaba görünebilir ve diğerlerinde ise bunun tam tersi olabileceği gibi varsayımlarınıza dayanarak iletişimi kişiselleştirmemelisiniz.

Ayrıca, bazı kültürler “Bayan” ve “Bayan” gibi formlara vurgu yapar ve bu sözcüğü belirli bir duruma bağlı olarak ad veya soyadıyla birleştirebilirler.

Bu yüzden, tek bir isim alanınızın ve belki de kullanıcının kullanıcıya nasıl dönebileceğini gösteren doldurduğu ilave alanların olduğu bir çözüme doğru eğildim - çevrimiçi bir bilet alırken birçok havayolunun yaptığı gibi. Bu ayrıca, belirttiğiniz harici bir web hizmeti için ihtiyacınız olursa, adların nasıl bölüneceği sorununu da çözebilir.


1
Muhtemelen yerelleştiriyorsanız farklı diller için farklı bir şablon kullanabilirsiniz
Casey

4

@JanHudec ve @KjMag'ın işaret ettiği şeye daha da fazla bir şey katarsak, İngilizceye çok yakın kültürlerde / dillerde bile bu bir problem haline gelir. Mesela almanca al. Vornamen, Adlar, Nachnamen, Soyadı ve Rufname kavramlarına sahipsiniz. Mesela babamı alması için ilk 3 adı var, doğum belgesinde Christoph Stephan Andreas adına listeleniyorlar. Ve bir soyadı var. Adı ne denir sence?

Doğru cevap: Andreas. Bu onun Rufname'sı, Amerika'da bunu Amerikan şablonuna uyacak ilk adı olarak koyar. Öyleyse, Almanya'da ilk adlarınızın son adının sizin arandığınız ad olduğunu varsayabilir, ancak o zaman kardeşim var: Christoph Sebastian Herbert Maria. (Şimdi verdik, biz Bavyeralıyız) Veya kız kardeşim Christine Gabriele. Adı verilen isimler nedir sizce? Sırasıyla Sebastian ve Christine.

Ben tam bir isim için bir alan söyleyen cevapların üçüncü olur. Ve şunu eklerdim: belki bir Soyadı / aile adı için başka bir alan ekler ve soruyu sorarım: bir listede hangi ada göre sıralanırsınız? Ve sonra son bir alan: nasıl ele alınmak istersiniz?


1
"Soyadı", "soyadı" için yalnızca başka bir addır, kelimenin tam anlamıyla sırayla geçen kelime değildir. Nakayama Taro'nun soyadı "Nakayama" dır.
Casey,

2
Başka bir vaka eklemek için: Büyükbabama "Antoon Leendert van Ingen Schenau" => verilen ad (lar): "Antoon Leendert"; denilen: "Leen"; soyadı: "van Ingen Schenau", "Ingen" altında sınıflandırılacak. Ne çağrı adı ne de doğru sıralama, bir ad / soyadı girişinden kolayca elde edilebilir.
Bart van Ingen Schenau

1
@Cey göre kim? Japonya'da "soyadı" değil, örneğin "üst ad" dır.
eis

1
@eis Japonya'da bu 名字. Fakat burada İngilizce konuşan dünyada, "soyadı", "kişinin adı sırasındaki son söz" değil, "soyadı" ile eşanlamlıdır.
Casey,

1
@ eis Hangi noktada yapmak istediğinden emin değilim. Soyadı yerine last_name veritabanı alanını çağırırsanız kullanıcılar farkı anlamaz; biri diğerinin eş anlamlısıdır. Endişeniz yazılımı İngilizce olmayan konuşmacılara sunmaksa, hem "soyadı" hem de "soyadı" İngilizce terimler olduğundan ve bu sayfayı yerelleştirmek için kullandığınız dili kullanmanız gerekir. Endişe duyuyorsanız, İngilizce bilmeyen kişilerin İngilizce sayfasını kullanabilmelerini istiyorsanız, bu, asıl sorunu çözmenin tam anlamıyla yürekli bir yoludur.
Casey,

-2

Eğer biri global bir uygulamaya gidiyorsa, kişi muhtemelen bir kişinin ismini dizge olarak modelleyecektir. Örneğin, Idiocracy filminde başkanın adını düşünün:

  • Dwayne Elzondo Dağ Çayı Herbert Camacho

Bu onun tam adı. İsim dizide 6 element içeriyor. ABD kültürü için, ilk isim dizideki ilk öğedir (Dwayne) ve soyadı dizideki son öğedir (Camacho). Ancak bu her zaman böyle değildir.

Birisi, eğer ilk ad gerçekten de son eleman ise “ilk” adını belirlemek için kültüre özgü kurallar uygulayabilir.

Ayrıca, ABD örneğinde, son elemanın soyadı olmadığı durumlarda davalarımız vardır:

  • Dwayne Elzondo Dağ Çayı Herbert Camacho Jr.

Bu nedenle, belki bir isim soneki alanı veya bir tanesi doğru soyadı elde etmek için kültüre dayalı bilinen sonekleri arayan son elemanı ayrıştırmak zorunda kalır.

Bu nedenle, adı tek bir öğede (tam ad) saklamaktan ve daha sonra belirli öğeleri gerektiği gibi ayrıştırmak için "standartlaştırma / temizlik" yordamı uygulamaktan her zaman daha iyi olursunuz. Adresler için benzer bir strateji var. Genellikle bir dize olarak toplanırlar ve sonra parçaları ayrıştırmak için bir servise gönderilirler.


3
Tek alan ve daha sonra "ayrıştırma" gerçekten kötü bir fikirdir. Soyadı "Kıdemli" olan bir kişiyi düşünün: bunu nasıl ayrıştırıyorsunuz? Peki ya soyadı olarak "de la Jolla"?
BobDalgleish

Ayrıştırma veya bir sonek alan adı bahsettim. Eğer jenerik bir çözüme ihtiyaç duyulursa, bir isim çözümleyici gerekir, böylece "Senior" ve "de la Jolla" gibi her durumla başa çıkabilirsiniz. Biri AI kullanabilir ve isimleri nasıl tanıyacağını eğitebilir. Birisi yeterince büyük bir veri seti besleseydi, dünyanın "de la Jollas" ını tanıyabilecekti. Ancak bu olası bir çözümdür. Kesikli parçaları kesinlikle toplamak da mümkündür, ancak bunun dezavantajı vardır.
Jon Raynor
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.