Most systems that I have seen distinguish between an InstantQuote and an AggregateQuote (or similar naming).
InstantQuote refers to the pricing at a given time, which is usually just a price (I hope you have a Currency type) and symbol. These have time stamps.
AggregateQuote represents a quote at a given time that also includes information aggregated from instant quotes over the day. For instance, at the end of the trading day you calculate start and end times, calculating timestamp, high low, total volume, etc. The idea is that you could always recalculate it based on historical data.
In some systems, there is also an explicit notion of a trade (which has a timestamp and volume and symbol), which is then used to calculate the aggregate quote.
Whether you have both InstantQuote and a Trade depends on the semantics. In some markets (e.g., ForEx), you may want to track bid/asks and L2 levels even when no actual trades take place.