Вот две таблицы, одна с именем State
, другая с именем WorkingOn
.
workers_name state
aaa onduty
bbb offduty
ccc onduty
ddd onduty
workers_name working_on
aaa projectA
aaa projectB
aaa projectC
bbb projectB
bbb projectC
Теперь мне нужно показать, занят ли дежурный работник или свободен во входной группе. Таблица WorkingOn
должна записывать детали того, над чем работники работают, и я не могу ее изменить.
Поэтому я установил для логического значения Busy
значение true, пока есть работа (нет независимо от того, сколько проектов работает над рабочим) для работника и установите для логического значения Busy
значение false, когда для работника нет работы.
По моему мнению, возможно, мне следует получить счет проекта над чем работают рабочие, а затем конвертируют счет в логическое значение. Несмотря на то, что это теоретически работает, я считаю, что это приведет к напрасной потере производительности, так как ему нужно будет провести поиск по всем показателям проекта, над которыми работают работники. В таблице WorkingOn
будут миллионы данных, которые я должен об этом подумать.
Вот модель, в которую должна преобразоваться среда Entity:
public class WorkerStatus
{
public string workers_name{get;set;}
public boolean busy{get;set;}
}
И вот это модель базы данных:
public class TestDBContext : DbContext
{
public virtual DbSet<statemodel> state { get; set; }
public virtual DbSet<workingonmodel> workingon { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Data Source=123.db");
}
public TestDBContext(DbContextOptions options) : base(options)
{
}
protected TestDBContext()
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
builder.Entity<statemodel>().HasNoKey();
builder.Entity<workingonmodel>().HasNoKey();
base.OnModelCreating(builder);
}
}
public class statemodel
{
public string name { get; set; }
public string state { get; set; }
}
public class workingonmodel
{
public string name { get; set; }
public string working { get; set; }
}
Как я могу решить эту проблему? Спасибо.