Assume I writing an email applicaiton. Now I want to send some messages to specified person, some messages to multiple person, some messages to specified group and some to all members. I am wondering in the best practice I have to treat every mail like a one instance mail, I mean I if I am sending mail to all I have to assign one record for every person or I can define a type field and from the code I must handle with codes.
Mail Master table MailID (PK) Mail content Emp Master table EmpID (PK) EmpName Mail-Employee Mapping table Mail-Employee_ID (auto increament id PK) MailID (FK) EmployeeID (FK) Group_Master table GroupID (auto increament PK) GroupName Group_Employee_Mapping table Group_Employee_ID (auto increament) GroupID (FK) EmployeeID (FK) (GroupID+Employee are unique so Composite PK)
I think tables and their roles are self explanatory.
Some rule for Group Master:-
Group_Employee_Mapping is predefined in system :you have already mapped all employee and its group in this table.One employee can belong to many group .
If Group='All' don't store "All" employee in
Group_Employee_Mapping Table.As this is unnecessary
If user select "All" select all employee from Employee Table ,send them mail and store each employee and mailid in "
Mail-Employee Mapping" table
If user select any specific group then select those employee from
Group_Employee_Mapping table,send them mail and store them in M