forma preferida para mapear o código com as entradas do banco de dados do usuário criado
-
22-07-2019 - |
Pergunta
Eu estou tentando descobrir o melhor modelo de banco de dados para a configuração atual:
Um administrador pode criar "produtos dos clientes". Esta Serviços Meios / produtos que o cliente pode anexar / subscrever. Os casos simples onde o produto simplesmente custa um preço, ou a subscrição do produto deve enviar um e-mail é fácil de modelo no banco de dados.
Mas como sobre o código backend muito específico para um produto ao cliente? Por exemplo, um produto pode ter um código muito específico implementado para verificar o status do cliente em um banco de dados diferente. Como eu pode mapear esse relacionamento no banco de dados para que eu possa ligar / desligar alguns códigos com base nas configurações do produto.
A minha maneira intuitiva de lidar com isso seria ter uma coluna corda na tabela de CustomerProducts onde um conjunto pré-definido de cordas poderia ser definido, por exemplo, "MyCustomCodeHandler", e, em seguida, o código seria verificar a existência desta cadeia, a fim de executá-lo. Mas para mim ele realmente não se sentir como uma verdadeira relação entre o banco de dados e código.
Solução
Os dados são dados, enquanto que o código é o código. Eu não recomendaria armazenamento de código no banco de dados.
Se você precisa permitir que os clientes para criar tipos de produtos (no sentido orientado a objeto de "tipos") com código associado, eu escolheria para implantar esse código, da mesma forma que você implantar outro código.
O código personalizado também pode fazer referência a dados personalizados armazenados no banco de dados. Eu escolheria para criar uma tabela dependente por subtipo do produto, e colocar as colunas específicas do tipo lá dentro. A relação entre este subtipo de tabela e a tabela de produto genérico é um-para-um. Ou seja, a chave primária na tabela de subtipo é também uma chave estrangeira para a tabela de produtos genéricos.