كيف يتم تخزين كائنات القيمة في قاعدة البيانات؟

StackOverflow https://stackoverflow.com/questions/679005

سؤال

لم أر أي أمثلة حقًا، لكنني أفترض أنه تم حفظها داخل جدول الكيان المحتوي داخل قاعدة البيانات.

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

هل هذا منطقي بالنسبة للمجال الذي لدي فيه كيانات أخرى مثل الشركات وما إلى ذلك؟التي لها عنوان؟

(أقوم حاليًا بكتابة تطبيق لإدارة المشروع وأحاول الدخول إلى DDD)

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

المحلول

لا بأس بتخزين كائنات القيمة في جدول منفصل، للأسباب ذاتها التي وصفتها.ومع ذلك، أعتقد أنك تسيء فهم الكيانات مقابل VOs - فهي ليست مصدر قلق متعلق بالاستمرارية.

هنا مثال:

افترض أن أ شركة و شخص كلاهما لهما نفس البريد عنوان.أي من هذه العبارات تعتبر صحيحة؟

  1. "إذا قمت بتعديل Company.address ، فأنا أريد الشخص.
  2. "إذا قمت بتعديل Company.address ، فيجب ألا يؤثر ذلك على الشخص.

لو 1 صحيح، عنوان ينبغي أن يكون كيان, ، وبالتالي لديه جدول خاص به

لو 2 صحيح، عنوان ينبغي أن يكون كائن القيمة.يمكن تخزينه كمكون داخل جدول الكيان الأصلي، أو يمكن أن يكون له جدول خاص به (تطبيع أفضل لقاعدة البيانات).

كما ترون، فإن كيفية استمرار العنوان لا علاقة لها بدلالات الكيان/VO.

نصائح أخرى

ومعظم المطورين يميلون الى الاعتقاد في قاعدة البيانات أولا قبل أي شيء آخر. DDD لم يكن يعرف شيئا عن كيفية التعامل مع المثابرة. هذا هو ما يصل الى مستودع للتعامل مع ذلك. يمكنك الاستمرار على أنها XML، SQL، ملف نصي، الخ الخ الكيانات / المجاميع / الأشياء القيمة هي المفاهيم المتعلقة المجال.

شرح من قبل فيجاي باتيل على ما يرام.

ولقد بدأت لمعرفة DDD مع كتاب اريك ايفانز ومشروع dddsample البضائع ممتازة كمثال. http://dddsample.sourceforge.net/

وحتى بالنسبة لأولئك (مثلي) الذي يريد أن يتحقق الفرق في تنفيذ مدونة هذا فارق بسيط في الطبقة نموذج المجال، وأود أن أقول:

وطريقة overidded يساوي أو / و sameIdentityAs / SameValueAs (من واجهة كيان وValueObject) هي، كما أعتقد، مكان التعبير عنها.

وانها مجرد بلدي فيلين ':)

وأعتقد مثيرة للاهتمام لقراءة هذا أيضا:

http://martinfowler.com/bliki/ValueObject.html

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