Relaciones básicas de Objetos en Salesforce


Una vez teniendo la idea de como los objetos y sus respectivos campos funcionan, se puede comenzar a hablar de las relaciones. Se entiende como relacion a la definición en un objeto que hace referencia a otro registro, pudiendo ser del mismo tipo de objeto o diferente. Son utiles para abstraer la informacion existente en diferentes objetos y que estan relacionados entre sí. 





Un ejemplo estandar seria la relacion que existe entre el objeto Cuenta y Contacto. Las cuentas representan usualmente una entidad formal con la que se realizan negocios, díganse empresas, organizaciones o comercios en el contexto de flujo de ventas. 

El objeto Contacto es utilizado para guardar informacion sobre las personas que estan relacionadas con dichas entidades, y trandose de casos de uso real, es comun que una entidad tenga variedad de empleados. Por lo que es ideal que exista una estructura de datos que soporte las relaciones entre cuentas (entidades) con multiples contactos (empleados, clientes o datos de personas).




Existen diferentes diferentes tipos de relaciones:

  • Relaciones de Lookup (De busqueda)
  • Relaciones Master-detail (Principal-detalle)


Las relaciones Lookup sirven para especificar una relacion entre un registro con otro sin necesariamente hacer un registro dependiente del otro o viceversa. 



En el caso de uso de un concesionario vehicular como ejemplo, podriamos decir que tenemos el objeto Concesionario, que representa el lugar donde se exhiben y venden vehiculos, por otro lado tenemos el objeto Vehiculo. 

Si deseamos representar la ubicación de los vehiculos en el sistema, podriamos crear un campo de relacion Lookup en el Vehiculo el cual relacione en que consesionario se exhibe. La creacion de esta estructura logica en el sistema seria util para la agilizacion de futuros procesos tales como creacion de reportes, ventas, documentaciones, etc.




Las relaciones Master-detail representan una estructura mas dependiente con los objetos involucrados. Son utilizadas para asociar un registro general (considerado registro "padre" o "master") con registros que representan detalles (mismos que fungen como registros "hijos" o "details").

Si bien, estas relaciones representan dependecias dentro de Salesforce, como por ejemplo, al eliminar el registro Master, los registros Detail tambien son eliminados. Otra caracteristica es que presentan facilidades para representar calculos de sumatorias, promedios, conteos, minimos y maximos en los registros masters con los datos existentes en todos los details. Estos campos se conocen como campos resumenes (Roll-up fields).




Al momento de elegir una u otra, es importante considerar cual funcionará mejor segun las necesidades de la implemetacion y el comportamiento que tendran los objetos en el sistema en el largo plazo, ya que malas implemetaciones de relaciones pueden causar que la organizacion se vuelva lenta cuando se intenten hacer consultas sobre los objetos y haya gran cantidad de registros.









Comentarios