خاطئ 3 - مستودع بسيط - واحد إلى العديد من العلاقات

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

  •  18-09-2019
  •  | 
  •  

سؤال

هذه هي المرة الأولى التي استخدم فيها خدمة خاطفة.

دعونا أقول لدي تلك الفصول:

public class Store
{
    public int Id { get; set; }
    public String Name { get; set; }
}

public class Employee
{
    public int Id { get; set; }
    public String Name { get; set; }
}

يرتبط الموظف بمتجر مع تاريخ تعيين. هذا يعني أنه في قاعدة البيانات سيكون لدي طاولة متوسطة مع المظلات، موظف، Startdate، inddate

تحديث

يمكن أن يعمل الموظف إلى Storea من 2009-01-01 إلى 2009-04-04 والعمل في StoreB من 2009-04-05 إلى ... ولا أريد أن يكرر جدول بياناتي جميع المعلومات الخاصة بموظفي في كل مرة يقوم فيها الموظف بتغيير المتجر الذي يعمل من أجله. في هذا المثال، لدى الموظف اسما فقط، ولكن دعنا نقول أن موظف حصل على 10 عقارات (العنوان والعمر والجنس ...)

كيف يمكنني تحقيق ذلك؟

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

المحلول

بناء على تعليقك والسؤال المحدث يبدو أنك تريد شيئا مثل ما يلي:

public class Store
{
    public int Id { get; set; }
    public String Name { get; set; }
}

public class StoreEmployee
{
    public int Id { get; set; }
    public Employee Employee { get; set; }
    public Store Store { get; set; }
    public DateTime HiredDate { get; set; }
}

public class Employee
{
    public int Id { get; set; }
    public String Name { get; set; }
}

نصائح أخرى

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

سوف تبدو الكائنات مثل هذا:

public class Store
{
    public int Id { get; set; }
    public String Name { get; set; }
}

public class Employee
{
    public int Id { get; set; }
    public String Name { get; set; }
    public IList<EmploymentTerm> EmploymentTerms { get; set; }
}

public class EmploymentTerm
{
    public int Id { get; set; }
    public Store Store { get; set; }
    public Employee Employee { get; set; }
    public DateTime? StartDate { get; set; }
    public DateTime? EndDate { get; set; }
}

فعلت هذا freehand لذلك يمكن أن يكون هناك أخطاء زوجين.

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