เรามีทีมงานที่ออกแบบตารางและความสัมพันธ์สำหรับนักพัฒนาซอฟต์แวร์ ในองค์กรของเราพวกเขาค่อนข้างเข้มงวดเกี่ยวกับการบังคับใช้มาตรฐาน 3NF ซึ่งโดยความจริงแล้วฉันเห็นด้วยกับขนาดองค์กรของเราและความต้องการหรือลูกค้าของเราเปลี่ยนแปลงไปตามกาลเวลาอย่างไร มีเพียงส่วนเดียวที่ฉันไม่ชัดเจนเกี่ยวกับเหตุผลที่อยู่เบื้องหลังการตัดสินใจออกแบบ: ที่อยู่
แม้ว่าสิ่งนี้จะเน้นที่ที่อยู่ในสหรัฐอเมริกาเป็นส่วนใหญ่ แต่ฉันคิดว่าสิ่งนี้สามารถใช้ได้กับทุกประเทศที่ทำสิ่งนี้ ที่อยู่แต่ละส่วนจะได้รับคอลัมน์ของตนเองในตารางที่อยู่ ตัวอย่างเช่นใช้ที่อยู่ gnarly US นี้:
Attn: Jane Doe
485 1/2 N Smith St SW, APT 300B
Chicago, IL 11111-2222
มันจะถูกแยกย่อยในฐานข้อมูลดังนี้:
- ถนนหมายเลข: 485
- เศษถนน: 1/2
- ทิศทางก่อนถนน: N (เหนือ)
- ชื่อถนน: Smith
- ประเภทถนน: ST (ถนน)
- ทิศทางหลังถนน: SW (ตะวันตกเฉียงใต้)
- เมือง: ชิคาโก
- รัฐ: IL (อิลลินอยส์)
- รหัสไปรษณีย์: 11111
- รหัสไปรษณีย์ 42222
- ประเทศ (สันนิษฐานว่าเป็นสหรัฐอเมริกา)
- เรียน Jane Doe
- ตู้ป ณ .: NULL
- ประเภทที่อยู่อาศัย: APT (อพาร์ตเมนต์)
- จำนวนที่อยู่อาศัย: 300B
และจะมีคอลัมน์อื่นอีกสองสามคอลัมน์ที่เกี่ยวข้องกับเส้นทางชนบทและเส้นทางสัญญา นอกจากนี้แอปพลิเคชันเฉพาะของเราอาจมีที่อยู่ต่างประเทศไม่กี่แห่ง ผู้สร้างโมเดลข้อมูลกล่าวว่าพวกเขาจะเพิ่มคอลัมน์เฉพาะสำหรับที่อยู่ต่างประเทศซึ่งจะเป็นบรรทัดปกติ 1, ฟิลด์ 2 ของบรรทัด
ตอนแรกฉันคิดว่านี่เป็นวิธีลงน้ำ การค้นคว้าออนไลน์ซ้ำ ๆ หมายถึงการใช้ที่อยู่บรรทัดที่ 1, 2, 3 และอาจเป็น 4 จากนั้นแยกเมืองภูมิภาคและรหัสไปรษณีย์ เรามีกรณีการใช้งานหนึ่งกรณีสำหรับแอปพลิเคชันใหม่ของเราซึ่งมีความละเอียดเป็นประโยชน์ เราต้องตรวจสอบว่าผู้ใช้ไม่ได้สร้างธุรกิจซ้ำและการตรวจสอบที่อยู่นั้นเป็นหนึ่งในการตรวจสอบความถูกต้อง เราสามารถทำให้มันทำงานกับที่อยู่บรรทัดที่ 1 และ 2 แต่มันจะยากขึ้น
สำหรับแอปพลิเคชันเฉพาะของเราเราจำเป็นต้องจัดเก็บที่อยู่หลายประเภทสำหรับธุรกิจและผู้คน (ทางกายภาพการส่งจดหมายการจัดส่งและอื่น ๆ ) เราอาจต้องสร้างจดหมายฟอร์มที่พิมพ์ได้ แต่ความต้องการนั้นยังไม่ได้รับการกล่าวถึง
แอปพลิเคชั่นอื่น ๆ บางอย่างในองค์กรของเราต้องการการสนับสนุน:
- การตรวจสอบ (พร้อมตารางประวัติเต็มรูปแบบ)
- การพิมพ์ป้ายผนึกจดหมาย
- การสร้างแบบฟอร์มที่พิมพ์
- การรายงาน (สำหรับรัฐบาลระดับชาติและระดับภูมิภาค)
ในขณะที่แอปพลิเคชันของเราอาจไม่ทำทุกอย่างที่แอปพลิเคชันอื่นทำอยู่การแยกที่อยู่ออกเป็นหลาย ๆ องค์ประกอบเป็นมาตรฐานองค์กรที่ฉันใช้งาน ไม่ว่าใบสมัครของเราจะได้รับประโยชน์จากมันหรือไม่เราถูกบังคับให้ทำเช่นนี้
คำถาม StackOverflow กึ่งที่เกี่ยวข้อง: ตัวแยกวิเคราะห์ที่อยู่ที่ดีซึ่งถูกปิดอยู่ที่ไหนแต่แสดงให้เห็นว่าที่อยู่การแยกวิเคราะห์ทำได้ยากเพียงใด
เพื่อให้ฉันเข้าใจการตัดสินใจในการออกแบบของพวกเขาดีขึ้นและเพื่อขายลูกค้าของเราบนแนวคิด ...
ปัญหาใดที่แก้ไขได้โดยแยกที่อยู่ออกเป็นคอลัมน์แต่ละคอลัมน์
คะแนนโบนัสสำหรับทุกคนที่ใช้ระบบเช่นนี้เพราะพบปัญหา