Manera preferida de asignar código con entradas de base de datos creadas por el usuario

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

  •  22-07-2019
  •  | 
  •  

Pregunta

Estoy tratando de encontrar el mejor modelo de base de datos para la configuración actual:

Un administrador puede crear " productos de cliente " ;. Esto significa servicios / productos a los que el cliente puede adjuntar / suscribirse. Los casos simples donde el producto simplemente cuesta un precio, o la suscripción del producto debe enviar un correo electrónico es fácil de modelar en la base de datos.

Pero, ¿qué tal un código de fondo muy específico para un producto del cliente? Por ejemplo, un producto puede tener un código muy específico implementado para verificar el estado de un cliente en una base de datos diferente. ¿Cómo puedo mapear esta relación en la base de datos para poder activar / desactivar algún código basado en la configuración del producto?

Mi forma intuitiva de manejarlo sería tener una columna de cadena en la tabla CustomerProducts donde se podría establecer un conjunto predefinido de cadenas, p. " MyCustomCodeHandler " ;, y luego el código verificará la existencia de esta cadena para ejecutarla. Pero para mí realmente no parece una relación real entre la base de datos y el código.

¿Fue útil?

Solución

Los datos son datos, mientras que el código es código. No recomendaría almacenar código en la base de datos.

Si necesita permitir que los clientes creen tipos de productos (en el sentido orientado a objetos de "tipos") con el código asociado, elegiría implementar ese código de la misma manera que implementa otro código.

El código personalizado también puede hacer referencia a datos personalizados almacenados en la base de datos. Elegiría crear una tabla dependiente por subtipo de producto y colocar las columnas específicas del tipo allí. La relación entre esta tabla de subtipos y la tabla de productos genéricos es uno a uno. Es decir, la clave principal en la tabla de subtipos también es una clave externa para la tabla de productos genéricos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top