I have a table that I need to create to hold saved emails for FUTURE delivery (to, from, message, scheduled send date, etc).
The catch here is that I don't know who's supposed to receive the email until the day of delivery.
What I mean is, the email is created to go to certain selected organizations, but the "members" of the organization will be constantly joining and leaving, so if someone creates an email for delivery next month, the list of member email addresses to send to by then will be different.
So, what I need to save in the table is the list of organizations that the email should go to, so that I can query for the latest list of member email addresses when I actually send the email. Hope that makes sense.
Anyway, so my question is: what is considered a "proper design" for this?
My initial thought is to just save a comma delimited list of organization IDs.
I know I will never have to search on which organizations were on the list, so I don't care if it's not query-able, and I know I could normalize it into one row per recipient organization, but it seems such an unnecessary repeat of data for no purpose, especially since I only query on the SENDER not the recipients.
So is a list of IDs just a horrible, no good, only-a-newbie-would-think-of-that, bad thing? Or can it be used in some cases? Or is there some other way to do this that I don't know about? I'm sure I can't be the only one who's run into a situation like this before!
Best Answer
Do not use a list of ids. You will regret it. Use junction tables.
DDL:
DML:
You should use the Party model for representing individuals and organizations, which is not what I used, but you should still look it up.