я должен хранить следующие объекты в базе данных: устройстваEntity Framework 6 составной ключ (DateTime + внешний ключ)
- точек измерения
- измеренные значения
, где каждый устройство имеет одну или несколько точек измерения. Таблица измеренных значений будет хранить значения для каждой точки измерения каждые 10 минут. Эта таблица будет иметь миллионы записей через несколько лет и должна быть эффективно доступна для поиска, измеряя точку и временную метку. Как бы вы это сделали с EF6 Code-First?
Мой первый подход:
public class Device
{
public int ID { get; set; }
public int DeviceNumber { get; set; }
...
public virtual ICollection<MeasuringPoint> MeasuringPoints { get; set; }
}
public class MeasuringPoint
{
public int ID { get; set; }
public int MeasuringPointNumber { get; set; }
...
// Foreign key
public int DeviceID { get; set; }
public virtual Device Device { get; set; }
}
public class MeasuredValue
{
//public int Id { get; set; } ????
public DateTime TimeStamp { get; set; }
// Foreign key
public int MeasuringPointID { get; set; }
public double Value;
public virtual MeasuringPoint MeasuringPoint { get; set; }
}
Все значения в таблице измеренного значения должны быть уникальными в сочетании с TimeStamp и MeasuringPointID. Какой первичный ключ я должен определить для MeasuredTable?