| CPC G06F 16/235 (2019.01) [G06F 16/2282 (2019.01); G06F 16/2456 (2019.01)] | 11 Claims |

|
1. A system comprising:
a database;
a processor; and
a non-transitory memory storing instructions that, when executed, cause the processor to:
receive a first set of attributes for an item;
generate a first surrogate key by concatenating a first plurality of the first set of attributes and a first non-attribute value;
generate a first super surrogate key by concatenating a second plurality of the first set of attributes and a current indicator;
generate a first record in the database comprising the first surrogate key and the first super surrogate key;
receive a second set of attributes for the item;
generate a second surrogate key by concatenating a first plurality of the second set of attributes and a second non-attribute value;
generate a second record in the database comprising the second surrogate key and the first super surrogate key;
in response to generating the second record, overwrite the first super surrogate key of the first record with a value other than the first super surrogate key, wherein the first super surrogate key is overwritten by setting the first super surrogate key to a different value; and
receive a data request comprising a key;
wherein when the key is the first super surrogate key, retrieve either the first record or the second record based on when the data request is received, wherein:
the first record is retrieved when the data request is received before the second record is generated and when a current indicator value of the first record indicates the first record is a current record; and
the second record is retrieved when the data request is received after the second record is generated, and after the first super surrogate key is overwritten, and when a current indicator value of the second record indicates the second record is a current record.
|