2014-03-26 80 views
3

我正在SQL Server中創建一個Employee表。該公司現有的數據庫傾向於將一個人的全名放在一個字段中。對我來說,這似乎是限制和容易出錯,我傾向於使用名字,中間名,姓氏。這是處理名稱的最好方法,還是在一個字段上有全名,有時是首選的,這是什麼原因?姓名的最佳實踐

+0

後綴怎麼樣我的意思是Jurnior Senior:D – Darka

+1

不管你做什麼,都不要把它們全部放在一個列中! – Ric

+0

最後,它總是依賴於你的應用程序使用數據。我更喜歡使用不同的列,因爲我至少能夠按姓氏排序,一旦你想列出員工,這似乎是一個相當普遍的願望。 –

回答

2

取決於您是否需要分隔名稱,例如,如果是按姓氏過濾。這受到您在該領域使用的限制。目前我從不需要這種情況,我總是隻用一個字段來表示人名。

0

那麼,在我需要存儲客戶信息的大多數項目中,客戶名稱都以相同格式存儲。這樣,如果需要全名,我們可以分三部分,並得到它們。否則,存儲完整的名稱,意味着我們已經以適當的格式存儲它(我的意思是適當的間距等);並不是每次我們都需要獲取全名。 很多人沒有一箇中間名(有的甚至沒有姓)

名字,中間名,姓

1

我建議使用姓氏和名字兩列。 如果您有一箇中間名,它將以名字保存。

如果你想要的名字和姓氏可能與SQL或C#或其他語言連接。如果您保存一列,則保存的順序是固定的(如果您保存了姓氏+名字,則不能使用分割顯示第一個姓氏+姓氏,這是一個不好的解決方案)

更準確和清晰。

+0

我沒有考慮將中間名或首字母組合成第一個,這是一種可能性。 – MrBill

2

如果您需要能夠排序或過濾例如按姓氏,那麼最好爲這些字段設置單獨的列。

如果你正在尋找爲什麼單個「名字」字段可能是首選的原因,這裏是我跑了一段關於Falsehoods Programmers Believe About Names的博客,這可能是有啓發性的。如果你的用戶基礎在文化上是多樣化的,你對某個名字的一些假設可能是錯誤的。

我每天使用的一些系統往往有兩個字段。首先,一個「登錄名」或「用戶名」(或電子郵件地址,對於Bugzilla)是永久性的,用於唯一標識登錄用戶。其次,用戶可以更改「顯示名稱」或「真實姓名」(MediaWiki)。

我所使用的具有「名字」,「中間名」和「姓氏」的系統似乎是適合存儲聯繫信息(CRM系統或計費系統)的系統。我的猜測是,這是紙質表格(Rolodex,郵寄表格,發票等)的延期,但我沒有提及證實這一點。

+0

非常有趣的博客文章 - 最後總是會有一個例外,無論驗證規則你可以想出,所以它似乎。 – MrBill

1

當然,這將取決於你的數據庫的預期範圍位(即全球,國家,內部等)

,我已經看到了一些醫療/法律系統使用最靈活的選項是設置與此類似。

First, Middle, Last, Prefix, Suffix, LegalName, FullName, Alias 

在這種情況下,這可能是矯枉過正,所以也許這會對你有用。

First, Middle, Last, LegalName, Alias 

LegalName應該是一個相當寬VARCHAR,處理人3+名稱,別名欄可以讓你優雅地結婚/離婚(從數據的角度來看,而不是HR一個)處理。

1

我主要使用前綴,名字(包含名字和中間名)和姓氏(包含姓和後綴)。搜索而不是將全名存儲在單個列中非常有用。