Соучредитель Reddit выступил с презентацией о проблемах, которые они имели при масштабировании для миллионов пользователей. Сводка доступна здесь.
Что меня удивило, так это пункт 3:
Вместо этого они сохраняют таблицу Thing и таблицу данных. Все в Reddit - это Thing: пользователи, ссылки, комментарии, субредады, награды и т.д. Вещи сохраняют общий атрибут, например, вверх/вниз, тип и дату создания. Таблица данных имеет три столбца: id, ключ, значение. Theres строка для каждого атрибута. Theres строка для заголовка, url, автора, спама голосов и т.д. Когда они добавляют новые функции, им больше не нужно беспокоиться о базе данных. Им не нужно было добавлять новые таблицы для новых вещей или беспокоиться об обновлениях.
Мне кажется, это ужасная идея, но, похоже, она была разработана для Reddit. Это вообще хорошая идея? Или это особенность Reddit, которая оказалась для них?