To achieve the parent task, it is a better plan that there be a period where writing is enabled for both in case that read new needs to be disabled. To achieve this CheckUser needs to be able to filter out duplicate rows (ones that are present in cu_changes and one of cu_log_event or cu_private_event).
This can be done by adding to cu_changes:
- Two columns that store an ID to the cu_log_event and cu_private_event tables; or
- One column that says the column also exists in another table.
Which method to use depends on whether there is a need to link the two rows at any point. This will be investigated.