سؤال

أنا أعيد إنشاء جزء من قاعدة بيانات شركتي لأنها لا تفي بالاحتياجات المستقبلية. حاليا لدينا أساسا ملفا عاديا وبعض الجداول المنفجرة التي لم تتحقق بالكامل.

طريقة تفكيري هي أن لدينا طاولة لكل فئة باستثناء جدول ZIPS، والتي قد تكون بمثابة توصيل كل شيء معا. يرجى الرجوع إلى الصورة أدناه:

مخطط قاعدة البيانات http://www.freeimagehosting.net/uploads/248cc7e884.jpg.

شيء واحد أفكر فيه هو إزالة الجدول الرمز البريدي ووضع الرمز البريدي في جدول ZipStocities على جدول الرمز البريدي فريد من نوعه ثم فهرسة الجدول على الرمز البريدي. الجانب السلبي الوحيد هو الرمز البريدي يجب أن يكون varchar لرعاية الرموز البريدية مع الأصفار الرائدة. فقط أريد أن أعرف ما إذا كان هناك عيب في منطقتي.

هل كانت مفيدة؟

المحلول

لا أعرف أن نظام الرمز البريدي الأمريكي والتقيانة الإقليمية جيدا، لكنني أفترض أنه يشبه إلى حد ما.

  • الدولة لديها العديد من المقاطعات.
  • مقاطعة لديها العديد من المدن.
  • المدينة لديها العديد من رموز البريدية.

وبالتالي سوف تستخدم المخطط التالي.

zipcodes cityzipcodes ------------ ---------------- المدن Zipcode (PK) <─── zipcode (PK) (FK) ---- ------- مدينة (PK) (FK) ───> Cityid (PK) اسم مقاطعة (FK) ───┐ │ │ المقاطعات │ ------------- الدول CountyID (PK) <───┘ ----------------- اسم الدولة (PK) <─── State (FK) اسم الاختصار

ثابت لمدن متعددة لكل الرمز البريدي.

نصائح أخرى

شيء واحد يجب أن تكون على دراية به هو أن ليست كل المدن في المقاطعات. في فرجينيا أنت في مدينة أو مقاطعة ولكن أبدا كلاهما.

النظر في الرسم البياني لديك، جدول الدولة هو الوحيد من الجداول الخارجية الأربعة اللازمة حقا. الجداول البحث مع معرف فقط وقيمة واحدة لا تستحق الجهد. تم تصميم هذه العلاقات لإجراء قيمة واحدة في الجدول الرئيسي (ziptocities) الرجوع إلى مجموعة من البيانات ذات الصلة في جدول البحث (الولايات).

ستحتاج إلى أن تسأل نفسك لماذا تهتم بالمقاطعات. في العديد من الدول في الولايات المتحدة، لديهم أهمية ضئيلة وراء التقاليد والخرائط.

سيكون السؤال الآخر هو مدى أهمية أن يكون العنوان دقيقا؟ كم عدد الوفيات التي ستكون موجودة إذا لم يتم تسليم الحروف المهمة في الوقت المناسب (ربما الكثيرين إذا كانت الرسالة حول استدعاء الأدوية الموصوفة!)

ربما تريد التفكير في استخدام البيانات من الخدمة البريدية، وربما باستخدام منتج يصحح العناوين. بهذه الطريقة، عندما تحصل على عنوان جيد، ستكون متأكدا من أن البريد يمكن تسليمه هناك - لأن الخدمة البريدية قد قلت ذلك!

يبدو أن هناك عيوب في كل من عمليةك ومنطقك.

أقترح عليك التوقف عن التفكير في الجداول والعلاقات للحظة. بدلا من ذلك، فكر في الحقائق. قم بإجراء قائمة من العناوين الصالحة التي تحتاجها قاعدة البيانات الخاصة بك إلى الدعم. العديد من المفاجآت تنتظرك.

لا تخلط بين عنوان مع تسمية بريدية. انهم ليسوا في كل نفس الشيء. النظر في شركات النمذجة، أيضا. في الولايات المتحدة، سواء كان العنوان صالحا يعتمد على الناقل. على سبيل المثال، يعد صندوق البريد الخاص بي عنوانا صالحا عندما يكون الناقل هو USPS، ولكن ليس عندما يكون الناقل UPS.

لتوفير الوقت، قد تحاول تصفح بعض تنسيقات العناوين الدولية bitboost..

هل سيعمل المنطق الخاص بك إذا حدث بلدان له نفس الرمز البريدي؟ سيشير هذان ذلك إلى مدن مختلفة في هذه الحالة. فيما يلي بعض النقاط التي يجب مراعاتها

  1. هل ترغب في استخدام Zipcode كنوع من المفتاح الأساسي في العنوان؟ (في استئجار الحقول المدينة والدولة والقطرية). في هذه الحالة، يمكنك الحصول على Zipcode، المدينة، الولاية، البلد في طاولة واحدة. إنشاء فهارس في المدينة، ولاية إلخ .. (لديك تبعية وظيفية للنموذج zipcode-> البلد، الدولة، المدينة. هذا كما قلت قد لا يكون صحيحا عبر البلدان.
  2. إذا كان ملء السيارات هو اهتمامك الوحيد، فقم بإنشاء طريقة عرض مخصصة واستخدامها.

أود أن أوصي بقراءة "أنماط نموذج البيانات" من قبل ديفيد ج. القش.

ولكن ليس كل شخص لديه مطالبة طبية صالحة مطلوبة بموجب القانون للبقاء في الولايات المتحدة حتى يتم تسوية المطالبة. يتحرك الناس.

سان فرانسيسكو هي مدينة في كاليفورنيا؛ انها ليست مدينة في ألاباما. هل يمنع التصميم الخاص بك إدخالات الهراء مثل "سان فرانسيسكو، آل"؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top