2011-09-02 32 views
0

我正在致力於面向社區的論壇風格網站。我有一個用戶表,用於存儲基本的用戶信息,如電子郵件,密碼,用戶的真實姓名,照片,約等。存儲用戶真實姓名的最佳做法

我的問題是存儲用戶名的最佳做法是什麼,在可用性和編碼方面。我應該創建一個全名或分部字段,如名字,姓氏,中間名字段嗎?有關係嗎?

+0

我建議改爲:「虛虛實實程序員認爲關於名稱」:http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/ – PhilW

回答

2

沒有萬能的答案。從根本上說,你爲什麼要存儲真實姓名?你是否需要用%<title> %<surname>和其他類似的東西來格式化字母,或者你只是將它作爲參考。如果你不需要比全名更多的東西,按照用戶提供的格式,只需存儲它即可。

全名的結構非常依賴於文化;亞洲名字的西方名字失敗了,歸納西方和東方的名字對於美洲原住民的名字仍然失敗。有些人將他們的法定名稱改爲一個字。有些人爲他們所獲得的頭銜感到驕傲(「蘇醫生」,「艾爾頓約翰爵士」等)。

0

使用多個字段將是最安全的方式,以防您想要檢索名字或姓氏出於某種原因。

您的模型中仍然有name方法,返回firstname + lastname

0

你打算在查詢中使用名字和姓氏,例如基於只有姓?在這種情況下,嘗試將它們分開是有意義的。如果您僅用於顯示,則可能無關緊要。作爲一般規則,粒度不是一種不好的做法,因爲您將來可能需要它們。

0

我總是傾向於避免合併單獨收集的字段。因此,如果您的「編輯我的賬戶信息」類型表單爲名字和姓氏提供了單獨的字段,請將它們分開。

有進一步的優點,以使它們保持爲離散場區,例如通過最後名稱排序或以其它方式通常利用名稱的各部分,而不必對如何分裂組合字段任意選擇的能力。想象一下,如果你只嘗試使用姓氏,但是該字段有第一個+最後一個 - 你會基於空格將它們分開嗎? 「Bill Van Kyueken」是什麼?或者如果有人添加了他們的中間名?

當您查詢時,當您不需要每個作爲單獨的部分時,總是可以使用CONCAT(first_name, " ", last_name)將它們混合在一起。將數據合併在一起比將其拉到碎片更容易!

0

我認爲你最好把真實的用戶名存儲爲一個字段(不是單獨的第一個/最後一個/中間名字段),因爲我認爲不是每個人都是首字母和姓氏。有些人有三個以上的名字。在這個全球化的世界裏,你可能更好的是擁有一個真實姓名的領域。

相關問題