Я должен принять решение, как спланировать таблицу, которая будет использоваться для хранения дат.
У меня есть около 20 разных дат для каждого пользователя, и я предполагаю, что сейчас 100 000 пользователей и их количество растет.
Итак, вопрос для запроса SELECT, что будет работать быстрее, если я сделаю таблицу с 20 полями? например
"user_dates"
userId, date_registered, date_paid, date_started_working, ... date_reported, date_fired
всего 20 полей со 100 000 записей в таблице
или создайте 2 таблицы, как первая таблица "date_types" с 3 полями и 20 записями для вышеуказанных имен столбцов.
id, date_type_id, date_type_name
1 5 date_reported
2 3 date_registerd
...
и вторая таблица с 3 полями фактических записей
"user_dates"
userId, date_type, date
201 2 2012-01-28
202 5 2012-06-14
...
но тогда с 2 000 000 записей?
Я думаю, что второй вариант более универсален, если мне нужно добавить больше дат, я могу сделать это из внешнего интерфейса, просто добавив запись в таблицу "date_type", а затем используя ее в "user_dates", однако теперь меня беспокоит производительность с 2 млн записей в табл.
Итак, какой вариант, по вашему мнению, будет работать быстрее?