Hi Everyone,
I need an intelligent way to store complex location criteria for e-marketing campaigns, which will allow consistent and useful reporting of which messages were sent where.
I’m designing a DB to record and report statistics for e-marketing campaigns. It does not contain mailing list or message data (e.g. lists of names, message content etc), but rather data about the mailing: format (e.g. newsletter, announcement, product feature etc); category (product area); geographical mailing list criteria; when it was sent; how many messages sent; how many opened etc. One of the main tables is as follows:
tblListRentals
(PK)ListRentalID
CategoryID
MailingPublicationID
MailingRegionID
MessageTypeID
Date
NoEmailsSent
OpenRate
SingleClickthroughRate
TotalClickthroughRate
The part I’m struggling to understand is how to store the geographical criteria. The table tblMailingRegion currently consists of just MailingRegionID and MailingRegionDescription, but due to the nature of our mailings, a different set of criteria may potentially be required per mailing, which will need normalising to result in useful reporting functionality.
To this end, I have created these 3 tables, as yet unrelated to other tables:
tblCountries
CountryID
ContinentCode
CountryCode
CountryName
RegionID
tblContinents
ContinentCode
ContinentName
tblRegions
RegionID
RegionName
The reason for this structure is that we divide the globe into 3 regions, loosely based on time zones; thus a single continent can be in more than one Region, and each Region can also contain multiple continents.
I need some way of specifying that (for example) ListRentalID W was sent to (RegionID X excluding ContinentCode Y), AND CountryID Z, or any combination of these (with different combinations of bracketing), in a fashion where it is intelligible that the same countries can be included in multiple MailingRegion criteria.
The only way I can think to do this is to have a one-to-many relationship between tblListRentals and tblMailingRegions (where one ListRentalID relates to multiple MailingRegionIDs), and add the fields:
IncludeCountry;
ExcludeCountry;
IncludeContinent;
ExcludeContinent;
IncludeRegion;
ExcludeRegion.
I just doubt this is the best solution, as it seem rather untidy, and I will have to write complex code for a query to understand the difference between fieldnames “IncludeX” and “ExcludeX”. Any comments or suggestions would be gratefully received!
Many thanks for your time.
Abby
I need an intelligent way to store complex location criteria for e-marketing campaigns, which will allow consistent and useful reporting of which messages were sent where.
I’m designing a DB to record and report statistics for e-marketing campaigns. It does not contain mailing list or message data (e.g. lists of names, message content etc), but rather data about the mailing: format (e.g. newsletter, announcement, product feature etc); category (product area); geographical mailing list criteria; when it was sent; how many messages sent; how many opened etc. One of the main tables is as follows:
tblListRentals
(PK)ListRentalID
CategoryID
MailingPublicationID
MailingRegionID
MessageTypeID
Date
NoEmailsSent
OpenRate
SingleClickthroughRate
TotalClickthroughRate
The part I’m struggling to understand is how to store the geographical criteria. The table tblMailingRegion currently consists of just MailingRegionID and MailingRegionDescription, but due to the nature of our mailings, a different set of criteria may potentially be required per mailing, which will need normalising to result in useful reporting functionality.
To this end, I have created these 3 tables, as yet unrelated to other tables:
tblCountries
CountryID
ContinentCode
CountryCode
CountryName
RegionID
tblContinents
ContinentCode
ContinentName
tblRegions
RegionID
RegionName
The reason for this structure is that we divide the globe into 3 regions, loosely based on time zones; thus a single continent can be in more than one Region, and each Region can also contain multiple continents.
I need some way of specifying that (for example) ListRentalID W was sent to (RegionID X excluding ContinentCode Y), AND CountryID Z, or any combination of these (with different combinations of bracketing), in a fashion where it is intelligible that the same countries can be included in multiple MailingRegion criteria.
The only way I can think to do this is to have a one-to-many relationship between tblListRentals and tblMailingRegions (where one ListRentalID relates to multiple MailingRegionIDs), and add the fields:
IncludeCountry;
ExcludeCountry;
IncludeContinent;
ExcludeContinent;
IncludeRegion;
ExcludeRegion.
I just doubt this is the best solution, as it seem rather untidy, and I will have to write complex code for a query to understand the difference between fieldnames “IncludeX” and “ExcludeX”. Any comments or suggestions would be gratefully received!
Many thanks for your time.
Abby