2010-02-25 16 views
10

Gần đây tôi đã cân nhắc tên và cách chúng tôi lưu trữ chúng. Nói chung một người sẽ có một tên, họ và tên đệm. Nếu bạn muốn đặc biệt hoàn thành, bạn có thể thêm một trường hậu tố, thậm chí có thể là một trường tiêu đề. Vì vậy, nếu ai đó muốn trở thành "Tiến sĩ John Q. Public III", họ có thể. Nhưng một người có thể có nhiều hơn một danh dự và nhiều hơn một hậu tố. Cho rằng vấn đề sau đó có thể hve một hyphenate tên cuối cùng quá. Vì vậy, nếu bạn là "Tiến sĩ John Quintus Maximus Công-Doe III Tiến sĩ MD. RPh."? Bạn có thể làm: Cách tiêu chuẩn để lưu trữ tên trong cơ sở dữ liệu

 
Persons 
    PersonID 
    Prefix 
    FirstName 
    MiddleName 
    LastName 
    Suffix 
PersonHonorifics 
    PHID 
    PersonID 
    Honorific 
PersonNames 
    PANID 
    PersonID 
    NameOrder 
Nhưng sau đó nó trở thành một con gấu để làm việc với, và không ai kết thúc bằng cách sử dụng chúng anyway.

Có một "Way tiêu chuẩn" được chấp nhận chung để lưu trữ dữ liệu tên không?

+0

Tùy theo nhu cầu của bạn. Bạn có cần phải tìm kiếm ví dụ. theo tên hoặc nhóm theo tiền tố? Bạn sẽ lưu trữ bao nhiêu tên? Bạn sẽ thực hiện loại hoạt động nào sau những tên này? – aefxx

+1

Tại sao bạn lại bao giờ xử lý riêng biệt danh dự? Bạn sẽ xử lý các Đơn đặt hàng Chivalric trong đó một KG được xếp hạng trước một CGB? –

+3

@ S.Lott Tôi muốn có một cuộc thảo luận học thuật độc lập với các yêu cầu và nó có vẻ giống như một ví dụ tốt, nơi có một cuộc thương mại. Trong một kịch bản mà bạn muốn truy vấn xuống một tập hợp bằng một kết hợp thông tin xác thực nhất định (ví dụ: tất cả các MCDBAs cũng là MCITP) thì phiên bản chuẩn hóa có thể thích hợp hơn với một "trường rác". –

Trả lời

4

tôi thích 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: Tên, Họ (để sắp xếp) và Tên Hiển thị (để bao gồm tất cả các đồ trang trí mà mọi người thích có.) Và tương thích hợp lý với các cách khác của lưu trữ thông tin về mọi người. Đó là những gì LDAP (và AD) dành cho. –

+15

+1 (tới LDAP) để đóng gói các trường cần thiết nhất theo cách chuẩn, -100 cho cách đặt tên không nhất quán ('givenName',' sn' ... Cái gì?) Và camelCaps kỳ lạ ('wWWHomePage'? Nghiêm túc?). –

1

Tôi sẽ bắt đầu bằng cách xem tiêu chuẩn vCard; nó cần một chút bình thường.

2

Cách tiêu chuẩn là xem xét các yêu cầu của bạn và lưu trữ dữ liệu cần thiết. Trong khi đây là một vấn đề học thuật thú vị, sự thật là, trong hàng chục hệ thống tôi đã làm việc, họ và tên thường là đủ. Đôi khi chúng tôi sẽ lưu trữ một chữ viết tắt ở giữa, nhưng hầu hết thời gian thậm chí không cần thiết.

Nếu bạn có yêu cầu lưu trữ tất cả Tiến sĩ John Quintus Maximus Public-Doe III Ph.D. MD. Thông tin của RPh, sau đó bạn tạo ra dung lượng lưu trữ cho điều đó. Nhưng miễn là tên cuối cùng của bạn cho phép có đủ dữ liệu, thì Tiến sĩ Maximus có thể nhập càng nhiều càng ít càng tốt để được lưu trữ về tên và chức danh của mình.

0

Từ kinh nghiệm của tôi nó thường là

  • Tiêu đề (như là một FK, liên kết ra một bảng danh hiệu)
  • tên đầu tiên
  • Tên đệm
  • tên cuối
  • Trước tên cuối cùng (nếu cần, để thay đổi tên cho phụ nữ đã lập gia đình)
  • Hậu tố

Bất cứ điều gì khác có xu hướng được quá mức cần thiết (trừ khi cần thiết trong ứng dụng cụ thể của bạn) và một nỗi đau để quản lý

1

Sau đây là một ý tưởng tồi (xem những nhận xét đầu tiên):

KISS! Tự do và chỉ sử dụng "FullName" :-) (Trong trường hợp bạn cần nó, từ cuối cùng trong chuỗi là "Lastname")

Bạn luôn có thể sử dụng: Kính gửi "Fullname".

Cách bạn xử lý kính ngữ tùy thuộc vào yêu cầu và đối tượng của bạn. Bạn có thể thu thập "lời chào".

+2

Ý tưởng tồi nói chung. Có, bạn có thể có một trường fullname nhưng nó phải được xây dựng trên các tệp riêng biệt, nếu không sắp xếp theo họ hoặc seraching theo họ có nghĩa là sử dụng như '% Smith%' có nghĩa là bạn không thể sử dụng chỉ mục. Tôi sẽ không bao giờ chỉ lưu trữ tên đầy đủ. – HLGEM

+0

Điểm tốt :-) Tôi đã thay đổi câu trả lời. (Có thể là đối với một số ứng dụng web công cộng, điều này sẽ đủ tốt - nơi bạn áp dụng YAGNI và thậm chí không thu thập LastName. (Nhưng đây không phải là câu hỏi) ... – Robert

+1

Không sắp xếp theo "họ", vấn đề –

1

Bạn nên thiết kế định dạng lưu trữ của mình theo cách bạn mong đợi để sử dụng dữ liệu. Nếu bạn cần biết sự khác biệt giữa (các) tên và họ, sau đó có các cột cho mỗi tên. Tương tự như vậy, nếu bạn (hoặc doanh nghiệp của bạn) quan tâm đến hậu tố/tiền tố/tên đệm/etc ... đủ để muốn sử dụng chúng theo cách cụ thể (ví dụ: gửi spam tất cả khách hàng là Doctors), sau đó có các cột cho mỗi.Nhưng nếu tất cả những gì bạn cần là để xác định chúng trong một báo cáo, hoặc trong một lời chào email, sau đó xem xét một cách tiếp cận dễ dàng hơn của: First_names, Last_Names, và để nó ở đó.

Tự hỏi mình có lợi ích thực tế nào khi tổ chức của bạn thoát khỏi từng thành phần của một tên người riêng biệt. Hãy xem governmentforms và xem số lượng information về tên người mà họ cảm thấy cần chụp.

0

Trừ khi bạn đang đối phó với một nhóm chuyên biệt như bác sĩ nơi bạn có thể cần lưu trữ tất cả các hậu tố theo cách dễ dàng tìm kiếm (chúng tôi thường tìm kiếm hậu tố chuyên nghiệp tại đây), sau đó bạn có thể lưu trữ chúng trong trường lastname hoặc trong một trường hậu tố riêng biệt (làm cho việc tìm kiếm tất cả những người có tên smith đáng tin cậy hơn nếu sufffix là một trường riêng biệt). nhưng với danh sách được phân cách bằng dấu phẩy. Tương tự cho tiền tố. Tôi sẽ đề nghị rằng firstname, lastname và middlename (Giúp phân biệt các dups và không có đệ trình nó ít có khả năng được đưa vào ngay cả khi người dùng biết nó) nói chung là cần thiết để có thể tìm kiếm và báo cáo dữ liệu đúng cách. Tôi wopuld cũng đề xuất một trường được tính toán định dạng tên đầy đủ theo cách bạn muốn hiển thị trên email, v.v.

13

Đôi khi bạn chỉ nghĩ mình biết yêu cầu của mình. Ngành xuất bản sách có tiêu chuẩn thông tin được gọi là ONIX sử dụng thông tin sau. Thật thú vị khi lưu ý rằng tên đầu tiên và tên đệm được kết hợp thành một trường.

  • Titles trước tên (ví dụ: Giáo sư, HRH Prince, Saint)
  • Names trước tên chính (tên đầu tiên và/hoặc viết tắt giữa - ví dụ: Brendan JE)
  • Prefix để tên chủ chốt (ví dụ: van, như trong Ludwig van Beethoven)
  • tên chính (tên cuối cùng)
  • tên sau tên chính (ví dụ: Ibrahim như trong Anwar Ibrahim)
  • Suffix để tên chủ chốt (ví dụ: Jr, III)
  • Quali các hiệu ứng và danh dự sau tên chính (ví dụ: MB, PhD)
  • Tiêu đề sau tên (ví dụ: Công tước xứ Edinburgh)
+0

Tình yêu này bởi vì nó hoạt động trên phạm vi quốc tế.Ngoài ra tìm thấy một liên kết đến các tài liệu thực tế: http://www.editeur.org/93/Release-3.0-Downloads/#Specification – danielson317

+0

Wow, điều này thật tuyệt vời. một mình. –

Các vấn đề liên quan