A table is needed to de-duplicate user agent strings in the CheckUser tables. This is because, as described in T305930 and T326379, there is a lot of duplication in these columns. This has become even more of a problem since {T295073}. For example, on enwiki there are about on average 200 rows to each distinct user agent string value. Some rough calculations suggest that by de-duplicating the column the `cu_changes` table on enwiki would be several gigabytes smaller.
We cannot use the `comment` table, because as described in T305930 `Old UA strings should be removed`. Therefore, we need a table that #CheckUser solely controls and can perform delete operations on.
Creating this table now allows us to make the new `cu_private_event_no_actor` table use a reference to this new table out-of-the-box and have no need to store the user agent string in the table directly.