Una pregunta sobre el almacenamiento de datos que debería haber estado en la misma mesa

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

  •  23-08-2019
  •  | 
  •  

Pregunta

El software que estoy trabajando tiene 2 mesas, el plomo y el cliente. Cuando vendemos nuestro producto a otra, se crea un registro en la tabla de clientes con datos de la tabla de plomo (así como algunos datos adicionales).

En la actualidad no existe una relación entre las dos tablas. Lo mejor que existe en la actualidad es el objeto de plomo que tiene una función que va a hacer una búsqueda en la tabla de clientes para un registro con el mismo número de teléfono (con la esperanza de que no ha cambiado en los últimos 5-10 años que han sido nuestros al cliente - haciendo una búsqueda por ejemplo en cada plomo produce una intersección% 82 en la tabla de clientes). No hay una búsqueda inversa (cliente-> plomo).

El problema es que yo necesito saber qué registro de cliente se asocia con lo que conducirá registro, y viceversa.

consideré almacenar una FK de plomo en el cliente y una FK del cliente en plomo ... pero el ORM estoy usando desbordamiento voluntad, ya que carga los registros asociados cuando existen fkeys.

La fusión de las dos tablas en una sola 'persona' es lo que me gustaría hacer, tener un indicador de bits que identifica si o no una persona es un cliente ... pero por desgracia, los plazos y los presupuestos no lo permitan.

No sé muy bien qué hacer.

¿Fue útil?

Solución

¿Usted realmente necesita que vaya ambas direcciones (es decir, 1: M conduce a clientes y 1: M clientes potenciales a)? Si es así, una mesa compuesta de estar "entre" los dos podría ser el camino a seguir. Cada registro contendría el PK del cliente y el PK de plomo (que enlaza los dos).

Si sólo necesita saber cuántos clientes potenciales están vinculados a un cliente, me gustaría añadir el FK a clientes potenciales (apuntando a la PK de clientes).

Otros consejos

Necesitará la columna ID en cada uno de sus dos tablas para identificar de forma exclusiva sus registros (si no lo tienes todavía).

Y hay que añadir una tabla de más de enlace (unión) para conectar las tablas existentes. Esta tabla contiene dos columnas: LeadID y CustomerID. Cada fila contiene identificadores de filas correspondiente al cliente y las tablas de plomo.

Las claves externas se conectarán las tablas: LeadID -> columna ID en la tabla de plomo; CustomerID -.> ID columna en la tabla cliente

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