ฉันกำลังออกแบบตารางฐานข้อมูลและถามตัวเองคำถามโง่ ๆ อีกครั้ง: ฟิลด์ชื่อควรจะนานเท่าไหร่
ใครบ้างมีรายการความยาวที่สมเหตุสมผลสำหรับฟิลด์ที่พบบ่อยที่สุดเช่นชื่อนามสกุลและที่อยู่อีเมล
ฉันกำลังออกแบบตารางฐานข้อมูลและถามตัวเองคำถามโง่ ๆ อีกครั้ง: ฟิลด์ชื่อควรจะนานเท่าไหร่
ใครบ้างมีรายการความยาวที่สมเหตุสมผลสำหรับฟิลด์ที่พบบ่อยที่สุดเช่นชื่อนามสกุลและที่อยู่อีเมล
คำตอบ:
คำแนะนำของ W3C:
หากการออกแบบฟอร์มหรือฐานข้อมูลที่จะยอมรับชื่อจากบุคคลที่มีภูมิหลังหลากหลายคุณควรถามตัวเองว่าคุณจำเป็นต้องมีฟิลด์แยกต่างหากสำหรับชื่อและนามสกุล
…จำไว้ว่าชื่อในบางวัฒนธรรมนั้นอาจจะยาวกว่าของคุณเองมากทีเดียว ... หลีกเลี่ยงการ จำกัด ขนาดเขตข้อมูลสำหรับชื่อที่อยู่ในฐานข้อมูลของคุณ โดยเฉพาะอย่าสมมติว่าชื่อภาษาญี่ปุ่นสี่ตัวอักษรใน UTF-8 จะพอดีกับสี่ไบต์ - คุณมีแนวโน้มที่จะต้องการ 12
https://www.w3.org/International/questions/qa-personal-names
สำหรับเขตข้อมูลฐานข้อมูลVARCHAR(255)
เป็นตัวเลือกเริ่มต้นที่ปลอดภัยเว้นแต่ว่าคุณจะมีเหตุผลที่ดีในการใช้อย่างอื่น สำหรับเว็บแอปพลิเคชันทั่วไปประสิทธิภาพจะไม่เป็นปัญหา อย่าปรับให้เหมาะสมก่อนเวลาอันควร
ฉันสอบถามฐานข้อมูลของฉันกับลูกค้าหลายล้านคนในสหรัฐอเมริกา
ความยาวชื่อแรกสูงสุดคือ 46. ฉันไปกับ 50 (แน่นอนมีเพียง 500 คนเท่านั้นที่มีมากกว่า 25 คนและทุกกรณีที่การนำเข้าข้อมูลทำให้เกิดขยะมากขึ้นในพื้นที่นั้น)
นามสกุลคล้ายกับชื่อ
ที่อยู่อีเมลมีจำนวนสูงสุด 62 ตัวอักษร ส่วนใหญ่อีกต่อไปเป็นรายการที่อยู่อีเมลจริงคั่นด้วยเครื่องหมายอัฒภาค
ที่อยู่สูงสุดมีความยาวสูงสุด 95 อักขระ ตัวยาวนั้นใช้ได้จริง
ความยาวสูงสุดของเมืองคือ 35
นี่ควรเป็นการแพร่กระจายทางสถิติที่เหมาะสมสำหรับผู้คนในสหรัฐอเมริกา หากคุณมีการแปลเป็นภาษาท้องถิ่นเพื่อพิจารณาตัวเลขอาจแตกต่างกันอย่างมีนัยสำคัญ
แคตตาล็อกมาตรฐานข้อมูลรัฐบาลของสหราชอาณาจักรระบุรายละเอียดมาตรฐานของสหราชอาณาจักรสำหรับสิ่งนี้ แนะนำ 35 ตัวอักษรสำหรับชื่อและนามสกุลที่ได้รับแต่ละตัวหรือ 70 ตัวอักษรสำหรับเขตข้อมูลเดียวเพื่อเก็บชื่อเต็มและ 255 อักขระสำหรับที่อยู่อีเมล ท่ามกลางสิ่งต่างๆ..
Min Max
Hostname 1 255
Domain Name 4 253
Email Address 7 254
Email Address [1] 3 254
Telephone Number 10 15
Telephone Number [2] 3 26
HTTP(S) URL w domain name 11 2083
URL [3] 6 2083
Postal Code [4] 2 11
IP Address (incl ipv6) 7 45
Longitude numeric 9,6
Latitude numeric 8,6
Money[5] numeric 19,4
[1] Allow local domains or TLD-only domains
[2] Allow short numbers like 911 and extensions like 16045551212x12345
[3] Allow local domains, tv:// scheme
[4] http://en.wikipedia.org/wiki/List_of_postal_codes. Use max 12 if storing dash or space
[5] http://stackoverflow.com/questions/224462/storing-money-in-a-decimal-column-what-precision-and-scale
ชื่อส่วนบุคคลอาจเป็น Polynym (ชื่อที่มีหลายองค์ประกอบที่สามารถจัดเรียงได้ ) Mononym (ชื่อที่มีองค์ประกอบเดียวเท่านั้น) หรือ Pictonym (ชื่อที่แทนด้วยรูปภาพ - สิ่งนี้มีอยู่เนื่องจากผู้คนชอบเจ้าชาย)
บุคคลสามารถมีชื่อได้หลายชื่อมีบทบาทเช่น LEGAL, MARITAL, MAIDEN, PREFERRED, SOBRIQUET, PSEUDONYM เป็นต้นคุณอาจมีกฎเกณฑ์ทางธุรกิจเช่น "บุคคลสามารถมีชื่อทางกฎหมายได้ครั้งละหลายชื่อ แต่นามแฝงหลายชื่อ ขณะนั้น".
ตัวอย่างบางส่วน:
names: [
{
type:"POLYNYM",
role:"LEGAL",
given:"George",
middle:"Herman",
moniker:"Babe",
surname:"Ruth",
generation:"JUNIOR"
},
{
type:"MONONYM",
role:"SOBRIQUET",
mononym:"The Bambino" /* mononyms can be more than one word, but only one component */
},
{
type:"MONONYM",
role:"SOBRIQUET",
mononym:"The Sultan of Swat"
}
]
หรือ
names: [
{
type:"POLYNYM",
role:"PREFERRED",
given:"Malcolm",
surname:"X"
},
{
type:"POLYNYM",
role:"BIRTH",
given:"Malcolm",
surname:"Little"
},
{
type:"POLYNYM",
role:"LEGAL",
given:"Malik",
surname:"El-Shabazz"
}
]
หรือ
names:[
{
type:"POLYNYM",
role:"LEGAL",
given:"Prince",
middle:"Rogers",
surname:"Nelson"
},
{
type:"MONONYM",
role:"SOBRIQUET",
mononym:"Prince"
},
{
type:"PICTONYM",
role:"LEGAL",
url:"http://upload.wikimedia.org/wikipedia/en/thumb/a/af/Prince_logo.svg/130px-Prince_logo.svg.png"
}
]
หรือ
names:[
{
type:"POLYNYM",
role:"LEGAL",
given:"Juan Pablo",
surname:"Fernández de Calderón",
secondarySurname:"García-Iglesias" /* hispanic people often have two surnames. it can be impolite to use the wrong one. Portuguese and Spaniards differ as to which surname is important */
}
]
ชื่อที่กำหนดชื่อกลางนามสกุลสามารถหลายคำเช่นหรือ"Billy Bob" Thornton
Ralph "Vaughn Williams"
ฉันจะบอกว่าทำผิดด้านสูง เนื่องจากคุณอาจใช้ varchar พื้นที่เพิ่มเติมใด ๆ ที่คุณอนุญาตจะไม่ใช้พื้นที่เพิ่มเติมใด ๆ ยกเว้นว่ามีคนต้องการ ฉันจะบอกชื่อ (แรกหรือสุดท้าย) ไปอย่างน้อย 50 ตัวอักษรและที่อยู่อีเมลทำให้อย่างน้อย 128 มีที่อยู่อีเมลยาวมากจริงๆ
อีกสิ่งที่ฉันชอบคือไปที่Lipsum.comแล้วขอให้มันสร้างข้อความ ด้วยวิธีนี้คุณจะได้รับความคิดที่ดีว่ามีขนาด 100 ไบต์เป็นอย่างไร
[N]Varchar
ขนาดทำอย่างไรส่งผลกระทบต่อดัชนีของคุณ
ฉันมักจะใช้กำลัง 2 เสมอเว้นแต่จะมีเหตุผลที่ดีไม่เช่นอินเทอร์เฟซสำหรับลูกค้าที่หมายเลขอื่นมีความหมายพิเศษกับลูกค้า
หากคุณยึดติดกับพลังของ 2 มันจะช่วยให้คุณอยู่ในขอบเขตขนาดที่ จำกัด ซึ่งตัวมันเองเป็นสิ่งที่ดีและทำให้ง่ายต่อการเดาขนาดของวัตถุที่ไม่รู้จักที่คุณอาจพบเจอ ฉันเห็นผู้คนจำนวนมากทำสิ่งนี้และมีบางอย่างที่น่าพอใจเกี่ยวกับเรื่องนี้ โดยทั่วไปแล้วมันให้ความรู้สึกที่ดีเมื่อฉันเห็นสิ่งนี้หมายความว่านักออกแบบกำลังคิดเหมือนวิศวกรหรือนักคณิตศาสตร์ แม้ว่าฉันอาจจะกังวลหากมีการใช้ตัวเลขเฉพาะเท่านั้น :)
ฉันต้องการค้นหาแบบเดียวกันและมาตรฐานข้อมูลรัฐบาลของสหราชอาณาจักรที่กล่าวถึงในคำตอบที่ได้รับการยอมรับนั้นเหมาะอย่างยิ่ง อย่างไรก็ตามสิ่งเหล่านี้ดูเหมือนจะไม่มีอยู่อีกต่อไป - หลังจากการค้นหาแบบขยายฉันพบมันในไฟล์เก็บถาวรที่นี่: http://webarchive.nationalarchives.gov.uk/+/http://www.cabinetoffice.gov.uk/govtalk/ schemasstandards จำเป็นต้องดาวน์โหลด zip แยกมันออกแล้วเปิด default.htm ในโฟลเดอร์ html
สิ่งเหล่านี้อาจเป็นประโยชน์กับใครบางคน
youtube max channel length = 20
facebook max name length = 50
twitter max handle length = 15
email max length = 255
http://www.interoadvisory.com/2015/08/6-areas-inside-of-linkedin-with-character-limits/
+------------+---------------+---------------------------------+
| Field | Length (Char) | Description |
+------------+---------------+---------------------------------+
|firstname | 35 | |
|lastname | 35 | |
|email | 255 | |
|url | 60+ | According to server and browser |
|city | 45 | |
|address | 90 | |
+------------+---------------+---------------------------------+
แก้ไข : เพิ่มระยะห่างบางส่วน
เพียงแค่ดูว่าที่เก็บถาวรอีเมลของฉันมีชื่อ "แรก" ที่ค่อนข้างยาวจำนวนหนึ่ง (แน่นอนว่าสิ่งแรกที่มีความหมายคือตัวแปรตามวัฒนธรรม) ตัวอย่างหนึ่งคือ Krishnamurthy - ซึ่งมีความยาว 13 ตัวอักษร การเดาที่ดีอาจเป็นตัวอักษร 20 ถึง 25 ตัว อีเมลควรยาวกว่านี้มากเนื่องจากคุณอาจมีชื่อเป็นครั้งแรก.lastname@somedomain.com นอกจากนี้ gmail และโปรแกรมจดหมายอื่น ๆ ยังอนุญาตให้คุณใช้ firstname.lastname+sometag@somedomain.com โดยที่ "someag" เป็นสิ่งที่คุณต้องการวางไว้เพื่อให้คุณสามารถใช้เพื่อเรียงลำดับอีเมลขาเข้า ฉันมักพบเจอกับเว็บฟอร์มที่ไม่อนุญาตให้ฉันใส่ที่อยู่อีเมลแบบเต็มโดยไม่ต้องพิจารณาแท็กใด ๆ ดังนั้นหากคุณต้องการช่องอีเมลคงที่อาจเป็น 25.25+15@20.3 ตัวอักษรรวมทั้งหมด 90 ตัวอักษร (ถ้าฉันทำคณิตศาสตร์ของฉันถูกต้อง!)
ฉันมักจะไปกับ:
ชื่อ : 30 ตัวอักษร
นามสกุล : 30 ตัวอักษร
อีเมล : 50 ตัวอักษร
ที่อยู่ : 200 ตัวอักษร
หากฉันกังวลเกี่ยวกับฟิลด์ที่มีความยาวสำหรับชื่อบางครั้งฉันอาจไปด้วย 50 สำหรับฟิลด์ชื่อเช่นกันเนื่องจากพื้นที่จัดเก็บไม่ค่อยมีปัญหาในวันนี้
หากคุณจำเป็นต้องพิจารณาการแปล (สำหรับพวกเรานอกสหรัฐอเมริกา!) และเป็นไปได้ในสภาพแวดล้อมของคุณฉันขอแนะนำ:
กำหนดประเภทข้อมูลสำหรับแต่ละองค์ประกอบของชื่อ - หมายเหตุ: บางวัฒนธรรมมีมากกว่าสองชื่อ! จากนั้นให้พิมพ์ชื่อเต็ม
จากนั้นการแปลจะกลายเป็นเรื่องง่าย (เท่าที่ชื่อมีความกังวล)
เช่นเดียวกับที่อยู่ BTW - รูปแบบที่แตกต่างกัน!
มันเป็น varchar ใช่มั้ย ดังนั้นมันจึงไม่สำคัญว่าคุณจะใช้ 50 หรือ 25 ดีกว่าปลอดภัยและใช้ 50 นั่นหมายความว่าฉันเชื่อว่าสิ่งที่ยาวที่สุดที่ฉันเคยเห็นคือประมาณ 19 หรือมากกว่านั้น นามสกุลยาวขึ้น