Проектирование баз данных для школьной системы присутствия

Я думал, что не смогу этого сделать, но затем я перетащил нижний ряд параметров влево и вниз, и вот, есть опция «Установить как обои». : -)

8
задан Checksum 20 June 2009 в 14:32
поделиться

5 ответов

То, что вы делаете, называется преждевременной оптимизацией. Это распространенная ошибка.

Вам лучше привести структуру своей базы данных как можно ближе к реальности, и в будущем, если возникнет необходимость в оптимизации или улучшении скорости, вы всегда сможете это сделать.

Из опыта и просмотра вашего примера решение с одной таблицей выглядит нормально.

14
ответ дан 5 December 2019 в 08:00
поделиться

Контрольная сумма,

Я повторяю мнение Майкла о том, что это преждевременная оптимизация.

Что вы можете сделать позже для повышения производительности, так это использовать функции архивирования и разделения базы данных, чтобы ваша база данных чтения эффективны. Я также могу предложить создание индекса для этой таблицы. В любом случае, я не верю, что 1 миллион записей - это много. Сегодняшние базы данных способны обрабатывать такие большие числа. Также вы столкнетесь с проблемами производительности только через 3 года

Так что продолжайте писать код, а не думать о том, что пошло не так!

0
ответ дан 5 December 2019 в 08:00
поделиться

Я бы сказал, что нет необходимости разделять эту таблицу на части. Если вы создадите соответствующие индексы для любых выборочных запросов, которые вам могут понадобиться, система должна быть в состоянии очень быстро находить требуемые строки. Даже для аналитических запросов, которые включают все строки, 2 миллиона таких записей должны потребовать всего одну или две секунды для сканирования, что, как я полагаю, не представляет большой проблемы.

MySQL теперь также поддерживает разделение данных в качестве дополнительной функции. Разделение похоже на ваше предложение разделить таблицу на части, но оно выполняется на физическом уровне, поэтому оно не видно пользователям или разработчикам, использующим вашу схему. Это может быть полезным подходом, если вы обнаружите, что реализация с одной таблицей все еще слишком медленная. Этот документ предоставляет обзор разделения в MySQL 5.4.

2
ответ дан 5 December 2019 в 08:00
поделиться

Пара точек.

  • 2 миллиона записей - это не большая таблица.
  • наличие отдельной таблицы для каждого класса определенно не нормализовано.

Вы действительно не предоставили достаточно информации о ссылках на другую таблицу и что еще, если что-то еще, эта таблица будет хранить. Но вам следует начинать с 3NF для всех таблиц и изменять это только в случае проблем с производительностью.

3
ответ дан 5 December 2019 в 08:00
поделиться

Если вы правильно проиндексировали столбцы таблицы, их не должно быть. С первой таблицей проблем не будет.

Я бы не согласился с идеей разделить его на 12 классов, потому что у вас нет гарантии, что он останется неизменным (классы добавлены, классы объединены и т. Д.).

Налаживание нормализации базы данных с целью ощутимого преимущества в эффективности - это то, на что следует обращать внимание только в крайних случаях (если вообще когда-либо).

2
ответ дан 5 December 2019 в 08:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: