I'm wondering, what is the best approach about message deletion in a mysql based message system.
Plan A: When the sender sends a message, it will be saved in 2 versions. One for the sender and other for the recipient. This way everyone can immediately delete his own message from inbox/outbox. This approach has an advantage of immediately delete a row in database, but there are 2 time more rows for same number os messages, than the plan B.
Plan B: The sent message is saved once, the sender and recipient see the same message. They only mark that row for deletion and a cron job has to delete only those rows, that are marked by everyone for deletion. Advantages: only one row/message, Disadvantages: messages are deleted rarely, because they need to be marked by two users.
Are there other advantages/disadvantages for these plans? Is there a better way to do this? The goal is to make a fast system, optimization for speed is significant.