Existen varias tablas en el esquema de Siebel, que tienen tablas de extensión (extension tables) X y XM.
Las tablas de extensión sirven para guardar información extra y tienen las siguientes particularidades:
- No necesitan de un Join explicito entre ellas y su tabla base;
- En la columna PAR_ROW_ID de la tabla de extensión siempre está el ROW_ID de su tabla base;
- En las tablas _XM para cada registro insertado el TYPE, NAME y PAR_ROW_ID tienen de ser únicos;
Las tablas de extensión pueden ser:
- 1:1
- Este tipo de tablas tienen el sufijo _X;
- Para cada registro en la tabla _X existe un registro en la tabla Base;
- La tabla S_CONTACT_X es la tabla extendida de S_CONTACT y la S_SRV_REQ_X es la tabla extendida de S_SRV_REQ
- 1:M
- Este tipo de tablas tiene el sufijo _XM;
- Pueden existir varios registros en la tabla _XM para un registro en la tabla Base;
- La tabla S_CONTACT_XM es la tabla extendida de S_CONTACT y la S_SRV_REQ_XM es la tabla extendida de S_SRV_REQ
Las tablas de extensión XM se utilizan para guardar varios tipos de información. Para «catalogar» esa información, se utilizan los atributos de la tabla «TYPE» y «NAME».
Para gestionar esa información, se suele crear BC’S de acuerdo con el tipo de datos que se guardan. Por ejemplo, si se quiere guardar, para un contacto información que puede tener más que un valor (los restaurantes que le gusta, los colegios donde ha estudiado, la marca y modelo de los móviles que tiene/tuvo, …) creo un BC que forzará el TYPE a tener uno de esos valores y en el NAME se gurda el valor (nombre del restaurante, colegio,…). Por veces en el NAME se suele guardar el ROW_ID de la tabla _XM para garantizar que el TYPE + NAME + PAR_ROW_ID sean únicos, guardándose en un otro atributo el nombre del restaurante, colegio, …, etc.







