Introduced in Feature Pack 2

Best practices for using the attribute dictionary

Review the following best practices for using the attribute dictionary to learn ways to simplify managing attributes and reduce any impact to site performance:
Note: The following practices are specific to using the attribute dictionary and do not provide recommendations for designing your overall catalog.
  • Use attributes with predefined (allowed) values instead of attributes with assigned values when catalog entries need the same attribute and values. By using attributes with predefined values, you can prevent the database from growing large with duplicate attribute values. If you use an attribute with an assigned value for each catalog entry, the value cannot be shared across catalog entries and the database can contain many duplicate values.

    Feature Pack 8The value for an attribute with an assigned value can be shared when the same value is needed for multiple catalog entries. To share the assigned value for an attribute across catalog entries, an administrator must load the attribute relationship and attribute values with the Data Load utility. For more information about enabling the reuse of assigned attribute values, see Reuse attribute assigned values with the Data Load utility.

  • Do not define too many predefined values for a single attribute. When you are assigning an attribute to a catalog entry and selecting the predefined value, only 500 predefined values can display in the list.

    If you need to increase the number of values that display, a developer can customize Management Center to display more objects in a list. Increasing the number of objects that display in the list to a high value can affect performance. For more information, see Increasing the maximum page size value.

  • Create multiple instances of an attribute when the attribute has many predefined values, such as the attribute color. For example, if you have categories for cosmetics, appliances, paints, and clothing, and catalog entries in each category use the same attribute color, the attributes can have thousands of predefined values. By creating multiple instances of the attribute, you can create a color attribute for each category. For instance, these color attributes can all have the same name but have different unique identifiers, such as color-cosmetics, color-appliances, color-paints, and color-clothing. By separating the predefined values into multiple instances of an attribute, the number of values for each attribute is reduced and business users can locate specific values easier.
  • If you need to load attributes with predefined values into the attribute dictionary, use the appropriate CSV file with Catalog Upload:
    • If you need to load attributes and less than five predefined values for each attribute, load both the attributes and values together in a single CSV file. Use the keyword AttributeDictionaryAttributeAndAllowedValues in the CSV file.
    • If you need to load attributes and more than five predefined values for each attribute, load the values separately. Use the keyword AttributeDictionaryAttributeAllowedValues in the CSV file to load the predefined values.

      By default the sample configuration file that is provided for loading attributes with predefined values is configured to load only five values with each attribute. If you need to load attributes with more than five predefined values together, an administrator can update the configuration file to support more columns for predefined values in your CSV file. Increasing the number of columns for the CSV file can make it difficult to edit the file. By using a separate CSV file for loading predefined values, you do not need an administrator to update the provided configuration files. When you are constructing your CSV files to load the values separately, you include each value for an attribute in a separate row instead of a column. This structure can make creating or editing your CSV file easier.

      If you are loading more details for individual predefined attribute values, request that an administrator use the Data Load utility to load the values separately.