When building a data model, make sure that you and your team are thinking about how the application/end users will interact with the data as you will store it. Leverage base C3 Types as much as possible to avoid writing customer code for a feature that is already a part of the platform and optimized in our platform code base. Common Types to leverage include: TimeSeriesHeader, TimedIntervalRelation, TimedValueHistory, FixedAsset, etc. Note that some of these types enable timed interval or value relations. When possible, avoid large grab bag tables like TimedCharacteristicHistory when your end users will want query the past values of such a relationship often. It is best practice to define a unique TimedValueHistory field for each characteristic than to store that attribute in the characteristic table when it will be accessed often, as the CharacteristicsHistory table will grow large overtime with large data sets.