Включает ли отношение один к одному столбец внешнего ключа внутри одной из двух таблиц? - PullRequest
0 голосов
/ 11 марта 2020

У меня есть две таблицы - Days и Schedules, которые находятся в отношениях один к одному. После настройки и создания таблиц базы данных, должна ли таблица Days включать столбец ScheduleId, если нет?

Код выглядит следующим образом:

public class Day
{
    public int Id { get; set; }
    public DateTime Date { get; set; }
    public int dtDay { get; set; }
    public Schedule Schedule { get; set; }

}

public class Schedule
{
    [ForeignKey ("Day")]
    public int ScheduleId { get; set; }
    public int Treatment { get; set; }
    public int PatientCount { get; set; }
    public DateTime DateTime { get; set; }
    public Day Day { get; set; }
}

Мой вопрос: Days таблица должна иметь столбец ScheduleId внутри, потому что сейчас с этими аннотациями я не вижу столбец ScheduleId в моей таблице Days.

1 Ответ

0 голосов
/ 11 марта 2020

В этой ситуации иногда проще рассуждать, формулируя вопрос с точки зрения отношения parent-child . Это часто принимает форму "[родительский объект] {притяжательный глагол} [дочерний объект]". Например: « У клиента есть заказ » или « у поставщика есть грузовики ».

В этом случае ясно, что « Расписание имеет дни", потому что дни - это естественный способ подразделить расписание. Расписание является родительским объектом. Может ли это go по-другому? Имеет ли смысл в контексте вашего приложения произносить «Расписание дней»? Возможно, это действительно зависит от того, как вы планируете использовать эти данные в более широком контексте.

Я бы подумал, действительно ли это отношение 1: 1. Каждая запись расписания соответствует ровно одному дню? Распределен ли день на один и только один график? Опять же, это зависит от общего дизайна и от того, как эти таблицы вписываются в более широкий контекст. Я чувствую, что это может быть отношение многие-ко-многим : на день может быть запланировано несколько событий; и событие может длиться более одного дня.

...