forma preferida para mapear o código com as entradas do banco de dados do usuário criado

StackOverflow https://stackoverflow.com/questions/332466

  •  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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top