2010-02-25 13 views
10

Niedawno zastanawiałem się nad nazwami i sposobem, w jaki je przechowujemy. Ogólnie rzecz biorąc, osoba będzie miała imię pierwsze, ostatnie i drugie. Jeśli chcesz być szczególnie kompletny, możesz dodać pole sufiksu, a może nawet pole tytułu. Więc jeśli ktoś chce być "Dr. John Q. Public III", mogą. Ale osoba może mieć więcej niż jeden honorowy i więcej niż jeden przyrostek. Jeśli o to chodzi, może to być również nazwisko dzielnika. A co jeśli jesteś "Dr John Quintus Maximus Public-Doe III Ph.D. MD. RPh."? Mógłbyś zrobić: Standardowy sposób przechowywania nazw w bazie danych

 
Persons 
    PersonID 
    Prefix 
    FirstName 
    MiddleName 
    LastName 
    Suffix 
PersonHonorifics 
    PHID 
    PersonID 
    Honorific 
PersonNames 
    PANID 
    PersonID 
    NameOrder 
Ale potem będzie niedźwiedź, z którym można pracować, i nikt nie będzie ich używał.

Czy istnieje ogólnie przyjęta "metoda standardowa" do przechowywania danych?

+0

zależy od Twoich potrzeb. Czy musisz szukać np. według imienia lub grupy według prefiksu? Ile nazw będzie przechowywanych? Jakie operacje wykonasz na tych nazwiskach? – aefxx

+1

Dlaczego miałbyś kiedykolwiek osobiście przetwarzać Honorifiki? Czy zamierzacie zajmować się zamówieniami rycerskimi, w których KG znajduje się przed CGB? –

+3

@ S.Lott Chciałem mieć dyskusję akademicką niezależną od wymagań i wydawało się, że to dobry przykład, gdy był wolny. W scenariuszu, w którym chcesz przeprowadzić kwerendę w dół populacji przez pewną kombinację poświadczeń (powiedzmy: wszystkie MCDBA, które również są MCITP), wówczas znormalizowana wersja może być lepsza niż "śmieciowe pole". –

Odpowiedz

4

Wolę AD naming style

First Name givenName 
Last Name sn 
Initials initials 
Display Name displayName 
Description description 
Office physicalDeliveryOfficeName 
Telephone Number telephoneNumber 
Telephone: Other otherTelephone 
E-Mail mail 
Web Page wWWHomePage 
Web Page: Other url 
+1

+1: Imię, Nazwisko (do sortowania) i Wyświetlana nazwa (aby uwzględnić wszystkie dekoracje, które ludzie lubią mieć). I rozsądnie kompatybilne z innymi sposobami przechowywanie informacji o ludziach. Do tego służą LDAP (i AD). –

+15

+1 (do LDAP) do hermetyzacji najbardziej potrzebnych pól w standardowy sposób, -100 dla sposobu niespójnego nazewnictwa ('givenName',' sn' ... What?) I dziwacznych camelCaps ('wWWHomePage'? Serio?). –

1

Zacznę od obejrzenia standardu vCard; potrzebuje trochę normalizacji.

2

Standardowym sposobem jest spojrzenie na swoje wymagania i przechowywanie wymaganych danych. Chociaż jest to interesujący problem akademicki, prawdą jest, że w dziesiątkach systemów, nad którymi pracowałem, zazwyczaj wystarczające jest imię i nazwisko. Czasami przechowujemy środkowy inicjał, ale w większości przypadków nawet to nie jest wymagane.

Jeśli masz obowiązek przechowywania wszystkich dr. Johna Quintusa Maximusa Public Doe III Ph.D. MD. Informacje o RPh, a następnie wymyślić do tego miejsce. Ale tak długo, jak twoje nazwisko pozwala na wystarczającą ilość danych, doktor Maximus może wpisać tyle, lub mniej, ile chciałby zapamiętać na temat swojego nazwiska i tytułów.

0

Z mojego doświadczenia jest to zwykle

  • Tytuł (jako FK, łącząc się do tabeli tytułów)
  • Imię
  • Drugie imię
  • Nazwisko
  • Poprzedni nazwisku (w razie potrzeby, aby zmienić nazwę dla zamężnych kobiet)
  • Sufiks

Wszystko inne wydaje się być przesadą (chyba potrzebne w konkretnej aplikacji) i ból zarządzać

1

Kolumnę następujące zły pomysł (patrz pierwszy komentarz):

POCAŁUNEK! Uwolnij się i po prostu użyj "FullName" :-) (W razie potrzeby, ostatnim słowem w łańcuchu jest "Nazwisko")

Zawsze możesz użyć: "Droga".

Sposób obsługi holografii zależy od wymagań i odbiorców. Możesz zdobyć "grzeczność".

+2

Zły pomysł w ogóle. Tak, możesz mieć pole z pełną nazwą, ale powinno ono być budowane na oddzielnych plikach, w przeciwnym razie zamawianie przez nazwisko lub wyszukiwanie według nazwiska oznacza używanie "% Smith%", co oznacza, że ​​możesz; t używać indeksu. Nigdy nie przechowywałbym tylko imienia i nazwiska. – HLGEM

+0

Dobra uwaga :-) Zmieniłem odpowiedź. (Może być dla niektórych publicznych aplikacji internetowych, to byłoby wystarczająco dobre - tam gdzie stosujesz YAGNI i nawet nie zbierasz nazwiska. (Ale to nie było pytanie) ... – Robert

+1

Nie sortuj według "nazwisko", problem rozwiązany –

1

Powinieneś zaprojektować swój format przechowywania na podstawie tego, w jaki sposób zamierzasz korzystać z danych. Jeśli chcesz poznać różnicę między imionami i nazwiskami, musisz mieć kolumny dla każdego z nich. Podobnie, jeśli ty (lub twoja firma) troszczysz się o sufiks/prefiks/drugie imiona/etc ... wystarczy, aby chcieć ich użyć w określony sposób (np. Spamując wszystkich klientów, którzy są lekarzami), a następnie dla każdego z nich mieć kolumny.Ale jeśli wszystko czego potrzebujesz to zidentyfikowanie ich w raporcie lub pozdrowienie e-mailem, rozważmy łatwiejsze podejście: First_names, Last_Names i zostawmy to.

Zadaj sobie pytanie, jaką realistyczną korzyść organizacja uzyskałaby z przechowywania każdego składnika nazwy osobno. Spójrz na governmentforms i zobacz, jak wiele information o nazwie osoby, które czuje potrzeba uchwycić.

0

Jeśli nie masz do czynienia z wyspecjalizowaną grupą lekarzy podobnych do takich, w których możesz potrzebować przechowywać wszystkie przyrostki w sposób, który ułatwia wyszukiwanie (często szukamy tutaj profesjonalnego sufiksu), wtedy możesz je zapisać albo w polu lastname lub w osobnym polu sufiksu (sprawia, że ​​wszystkie osoby o imieniu Smith są bardziej wiarygodne, jeśli suffix jest oddzielnym polem). ale z listą rozdzielaną przecinkami. To samo dotyczy prefiksów. Sugerowałbym, aby imię, nazwisko i średnik (pomagały w rozróżnianiu duplikatów i bez zbioru, w którym jest mniej prawdopodobne, że zostaną wprowadzone, nawet jeśli użytkownik o tym wie) są na ogół niezbędne, aby móc właściwie wyszukiwać i raportować dane. Ja również sugeruję pole obliczeniowe, które formatuje pełną nazwę tak, jak ma być wyświetlane w wiadomościach e-mail itp.

13

Czasami wydaje Ci się, że znasz swoje wymagania. Branża publikowania książek ma standard informacyjny o nazwie ONIX, który wykorzystuje następujące. Warto zauważyć, że imię i nazwisko są połączone w jedno pole.

  • Tytuły przed nazwami (ex: Profesorze, Książę, święty)
  • Nazwy przed kluczowych nazw (imion i/lub środkowego inicjały - Ex: Brendan JE)
  • przedrostek nazwy kluczy (ex: van, podobnie jak w Ludwig van Beethoven)
  • Key nazwa (nazwisko)
  • nazwy po kluczowych nazw (np Ibrahim jak w Anwar Ibrahim)
  • przyrostek do nazwy kluczy (ex: JR III)
  • Quali kwa i wyróżnienia po kluczowych nazw (np MB, PhD)
  • Tytuły po nazwach (ex: Duke of Edinburgh)
+0

Uwielbiam ten, ponieważ działa na całym świecie, a także link do faktycznego dokumentu: http://www.editeur.org/93/Release-3.0-Downloads/#Specification – danielson317

+0

Wow, to świetnie. samemu. –

Powiązane problemy