According to the actual business needs, many of the data need to be permanently saved, and not with the subsequent changes in the data to affect other data, for example, the e-commerce system of orders, the order includes the price of the goods you bought 100,n days a May fall to 90, then your order price will be 90? How to solve? My answer is: Add the Price field directly in the order table and write the price every time the order record is generated. I think if a field like "price" is too much, consider creating a new one to store the history table. It is important to note that the "price" here is not the so-called redundant field when we are designing the database. Redundant fields say for the efficiency of the system to sacrifice some of the inverse paradigm design of the space, it is characterized by following the change of the main table changes, in this case if the "price" is a redundant field then it will change with the price of the commodity, which is obviously not the result we expect. So historical data, redundant fields must be based on our actual business to make the most reasonable design.
Historical data and redundant fields in the database