سؤال

لدي مشكلة، والتي أتوقعها شائعة جدا، لكنني لست متأكدا مما يجب البحث عنه، حيث يمكن تفسيره في العديد من الطرق المختلفة.

أنا تصميم هيكل قاعدة بيانات لإدارة الفواتير والمنتجات والأسعار والعملات وما إلى ذلك.

أنا قادر على إدارة أسعار وأسماء المنتجات (من المتوقع أن تتغير هذه (هذه الآن) ثم).

على الفواتير، تتم إضافة المنتجات حسب الكمية، مع الخصم، ضريبة القيمة المضافة، وحيدات وحيدات، السناجب، وهلم جرا، ثم يتم احتساب إجمالي الفاتورة.

الآن، عند تحديث السعر في جدول المنتجات، لا يفترض أن تتغير الفاتورة. يحتاج إلى البقاء على حاله إلى الأبد.

عند التفكير في هذا، يبدو لي أن قائمة المنتجات هي قائمة كائنات "نوع الطبقة"، والتي تصف ما يشبه المنتج. أو يمكننا أن نسميها "قالب" أو "قاعدة" أو "مجردة"، اعتمادا على التجريد الذي نفكر فيه.

المنتجات التي تتم إضافتها إلى الفاتورة هي "مثيلات" أو "تطبيقات" أو "الأطفال" أو "سجلات" أو أي شيء نسميها.

كيف يمكنني بناء هذا في قاعدة البيانات؟ يمكنني تقسيمها إلى طاولتين مختلفتين "مجردة إنتاج" و "منتج"، لكن سيكون لديهم أكثر (ربما جميعا) من أعمدةهم المشتركة. في هذا الصدد، يبدو الأمر مناسبا لإبقائهن في نفس الجدول. ولكن بعد ذلك، سأحتاج إلى عمود إضافي يدل على ما إذا كان "فئة" أو "مثيل". هذا جيد جدا قد يكون هذا أيضا أمرا أمريكيا للفئة التي تم إنشاؤها من (أو NULL للفصول).

لقد جربت مناهج مختلفة، ولكن يبدو أن كل شيء لديه تحذيرات مزعجة.

هل هذا نمط معروف؟ ماذا يسمي؟ هل هناك أفضل الممارسات لحل هذه المشكلة؟

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

المحلول

هو نمط معروف جيدا.إذا كنت تريد أدب واسع النطاق حول هذا الموضوع، ابحث عن "قاعدة البيانات الزمنية".

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