Uma maneira comum de fazer isso é ter uma tabela de "propriedades" semelhante a um arquivo de propriedades. Aqui você pode armazenar todas as constantes do seu aplicativo, ou coisas não tão constantes que você só precisa ter por perto.
Você pode pegar as informações desta tabela conforme necessário. Da mesma forma, como você encontra alguma outra configuração para salvar, pode adicioná-la. Aqui está um exemplo:
property_entry_table
[id, scope, refId, propertyName, propertyValue, propertyType]
1, 0, 1, "COMPANY_INFO", "Acme Tools", "ADMIN"
2, 0, 1, "SHIPPING_ID", "12333484", "ADMIN"
3, 0, 1, "PAYPAL_KEY", "2143123412341", "ADMIN"
4, 0, 1, "PAYPAL_KEY", "123412341234123", "ADMIN"
5, 0, 1, "NOTIF_PREF", "ON", "ADMIN"
6, 0, 2, "NOTIF_PREF", "OFF", "ADMIN"
Dessa forma, você pode armazenar os dados que possui e os que terá no próximo ano e ainda não sabe :).
Neste exemplo, seu escopo e refId podem ser usados para o que você quiser no back-end. Portanto, se o propertyType "ADMIN" tiver um escopo 0 refId 2, você saberá qual é a preferência.
O tipo de propriedade é fornecido quando, um dia, você precisar armazenar informações não administrativas aqui também.
Observe que você não deve armazenar dados do carrinho dessa maneira ou fazer pesquisas para esse assunto. No entanto, se os dados forem específicos do sistema , você certamente poderá usar esse método.
Por exemplo: se você deseja armazenar seu DATABASE_VERSION , use uma tabela como esta. Dessa forma, quando você precisar atualizar o aplicativo, poderá verificar a tabela de propriedades para ver qual versão do seu software o cliente possui.
O ponto é que você não deseja usar isso para coisas que pertencem ao carrinho. Mantenha sua lógica de negócios em tabelas relacionais bem definidas. A tabela de propriedades é apenas para informações do sistema.