Siebel Tools Reference > Adding Custom Extensions to the Data Model > Database Extension Planning and Design >

Planning and Design Steps


The following procedures describe the steps for planning and designing database extensions.

To plan for adding a custom column to the database

  1. Decide whether a new column is needed, or whether a standard extension column such as ATTRIB_03 or ATTRIB_27 in the standard extension table will meet your needs.
  2. In many cases it is better to use a new column in the base table rather than a standard extension column, because it gives somewhat better performance (that is, you avoid a join to the extension table). However, there are some exceptions to this guideline. Siebel Expert Services can identify when these exceptions might apply during a review such as a configuration design review or EIM mapping review.

    If you need to store additional data that almost always exists for a given base record and is regularly accessed, the recommended approach is to extend the base table to store this data. By doing this you avoid an extra join to an extension table. However, this might result in slower access to the base table if there is a lot of data (that is, many large fields have been added and they are always populated), because fewer rows now fit on one page.

    If a large number of extension fields is required, and if the view displaying this data is accessed infrequently, use an extension table. A join is executed for the extension table, but only when this view is accessed.

    NOTE:  When you create a new extension column in the Siebel schema, there might be padding issues with Siebel Remote. For details regarding what data type to use, see "Generating a New Database Template" in Siebel Remote and Replication Manager Administration Guide.

  3. If you choose to use a standard extension column, verify that the column is not already in use by a field.
  4. To find any fields currently using the standard extension column, do the following:

    1. In the Siebel Tools Object Explorer, click the Flat tab.
    2. Select the Field object type.
    3. Initiate a query by choosing Query > New Query from the menu bar. In the QBE row in the Object List Editor, enter the name of the column you want to use (in the Column property) and the name of the extension table (in the Join property). Press ENTER.
    4. If the query does not return any Field object definitions, the column is unused in the extension table and is available. If the query returns one or more object definitions, find another extension column in that table. To determine which extension columns are currently in use, perform the query again with the same extension table specified (in the Join property) and the value "ATTRIB*" in the Column property.
    5. CAUTION:  If the column is in use by a field defined by a Siebel application, do not deactivate the original field in order to use that column for another purpose.

  5. If you will add a new custom column, decide whether you will be implementing it after you have deployed active mobile clients. Mobile clients will either have to be reextracted to get the new column, or Siebel Anywhere will need to be used to distribute the schema change.
  6. Design the extension column. Decide on a description, name, user name, and characteristics (such as data type, length, and default values).
  7. Decide on the applet, view, and screen where the column will be used. Decide if users can only view column data, or view and update it.
  8. Decide where your custom column will reside: in a base table, a standard extension table, or a custom extension table.
  9. To find any existing columns in which you might place the field, do the following:

    1. In Siebel Tools, navigate to the applet to which you want to add a control or list column.
    2. Note the value in the Business Component property.
    3. Navigate to this business component using the Object Explorer and Object List Editor. The object definition for the business component in the Object List Editor displays, in its Table property, the name of the base table. Note the name of this base table.
    4. In the Object Explorer, select the Table object type.
    5. In the Object List Editor, perform a query to restrict the list of tables to just display extension tables with a base table name matching the previously identified base table, as follows:
      • Type property set to a value of Extension
      • Base Table property equal to the base table's name, in all capitals
      • The result of this query is a display of the extension tables for the identified base table.

        NOTE:  Alternatively, you could review the base table to determine if it would be appropriate to create an extension column there. This would require a different Object List Editor query, in which you set the Name property to the Name of the identified base table, and expand the Column object type in the Object Explorer.

  10. Decide on the method for loading data into the extension column. You may be able to populate the extension column using the Enterprise Integration Manager (EIM). For more information, see Populating Extension Tables and Columns. Alternatively, you could have your users enter data through the user interface, or use Siebel Object Interfaces and Siebel VB or Siebel eScript to update the data programmatically.
  11. Document the planned changes, and work with Siebel Technical Services to review the design.
  12. Develop an implementation schedule that includes adequate time to test and implement your work, as well as to propagate the changes to your active mobile clients.
  13. NOTE:  Because all extensions are made and tested first against a local development database, then made and tested against the test server environment, your mobile users can continue to synchronize as you implement database extensions.


 Siebel Tools Reference, Version 7.5, Rev. A 
 Published: 18 April 2003