Subscription-Related Database Objects

Database objects related to subscriptions include: subscriber, device, group, user, wallet, balance, balanceSet, product offer, bundle, session, activity, and event.

Database Objects describes the subscription-related database objects.
Table 1. Database Objects
Data Object Description
Subscriber Subscriber objects are contained in the Subscriber database and identify each subscription in the system. They contain pointers to all data required for rating, charging, and policy management. This includes pointers to groups, users, wallets, product offers, and devices. The subscriber external ID can be used to look up a subscription.

A subscription can belong to any number of groups, have any number of associated product offers and devices, and have one associated wallet. It can have any number of users, but only one user with the owner role.

Device Device objects identify the devices registered for a subscription. There are two pre-configured device types: a mobile device and a login device. Both have a device type, a status, and an array of purchased product offers.
  • The mobile device represents a SIM card, and is identified by an International Mobile Subscriber Identity (IMSI) or other access number, such as an MSISDN. Each mobile device has exactly one IMSI and it can optionally have multiple access numbers (MSISDN's) associated with it. Each MSISDN in the system must be associated with exactly one IMSI.
  • The login device has a login ID, password, and email address associated with the subscription registered with the device, and an array of purchased product offers.

Device objects can contain extended attributes that define additional information about the device. The device information is used to authenticate subscriptions when the service does not have a device registered for the subscription and also to look up subscription data. A device can be associated with only one subscription, but one subscription can be associated with multiple devices.

Group A group can have zero or one owner, and be associated with zero or multiple users in different roles, including the administrator role. Group objects identify product offers purchased, bundles purchased, and the group wallet. They also identify information about the group membership, including the subscriptions, subgroups, parent group, and number of members. A group can contain, at this time, up to 1,000,000 subscriptions per group. There is no technical limit to the number of subscriptions in a total group hierarchy—only what will fit in memory.
Wallet Wallet objects contain an array of balance instances and meter instances used by a subscription or a group. The balance and meter information is retrieved from the balance and meter templates created during pricing configuration. The information includes the type (standard or periodic), an aggregated attribute for sharing, the unit, such as megabytes, credit limits and thresholds, and any payment tokens for MATRIXX Pay Now. The ID associated with each instance points to the actual balance set data. subscriptions and groups can have one wallet.
User The user object contains contact, time zone, status, and notification information. It includes a count of how many subscriptions and groups the user is associated with. A user can own zero or more subscriptions and/or groups. For more information about user roles, see the discussion about user roles in MATRIXX Subscriber Management.
Balance Balances (including meters) contain information from their respective pricing template, including credit limits, thresholds, and start and end validity dates. A wallet can contain, at this time, a to-be-determined number of balances and meters.
Balance Set Balance set objects contain the reserved balance and gross balance amounts of each balance in a subscription's wallet. The balance amounts are stored separately to speed processing and optimize concurrent access. Balance values are updated during authorizations, rating, and charging.
Product Offer Product Offer objects are stored in the Pricing database. The subscriber, group, and device objects reference a list of product offer IDs that were purchased for the subscription, group, or device. A product offer can be included in zero or more bundles. The product offer IDs are used to look up the product offers in the pricing database.
Bundle Bundle objects are stored in the Pricing database. The bundle contains references to one or more product offers, and the subscriber, group, and device objects reference a list of bundle IDs that were purchased for the subscriber, group, or device. The bundle IDs are used to look up the bundles in the pricing database.
Session Session objects are stored in the Activity database and include in-progress charging and policy sessions. Charging sessions contain information about service authorization and usage, including service context information, and policy sessions contain information about balance amounts and counter status. Both session types are associated with a device ID. This ID is used to look up the subscriber. Recent sessions are maintained for duplicate message detection purposes.
Activity Activity objects are stored in the Activity database and contain information related to event aggregations and activities, such as subscriber, network, device, billing, and order management processing. They can be in-progress or closed (occurred in the recent past) and are associated with a device ID. This ID is used to look up the subscriber. Recent activities are maintained for duplicate message detection purposes.
Event Events that are finalized (occurred in the recent past) are moved from the Activity database to the Event database where they are stored as event objects (Event Detail Records) before they are added to a MATRIXX Event File (MEF). They include one-time events, such as purchase and topup events, usage aggregation events, and events related to non-aggregated events, such as interim records.

You can add new attributes to the subscriber, group, and device objects and base pricing and rating on them. For more information about extending MATRIXX data containers, see MATRIXX Integration.

For more information, see discussion about subscriber-related data.