[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Правильная работа с БД
wollk
Здравствуйте, стало очень интересно, как работают большие проекты с большим объемом информации. Представил себе задачку, есть журнал оценок учеников. Для этих оценок есть таблица, где хранится id ученика, предмет, оценка, дата. В каждой строке - новая оценка, какого-то ученика. В таком случае пусть в классе 30 учеников, умножаем на 250 рабочих дней, умножаем на 11 предметов, имеем 82 500 записей, для одного класса. Это нормально, или такие дела как-то по другому хранятся ?
Valick
Цитата
Это нормально
wollk
а, ну тогда спасибо, думал это много )
Valick
wollk, даже десять раз по столько, это далеко не много smile.gif


_____________
Стимулятор ~yoomoney - 41001303250491
glock18
wollk
если вас беспокоит кол-во возможных записей через несколько лет, то можете под каждый год отдельную таблицу заводить. Школьные дела под такое разбиение очень легко ложатся. А теоретические 2 с небольшим миллиона записей при 30 классах совсем уж ерунда, если все поля численные (полагая что и предмет тоже) и правильно проиндексированные. В этом случае можно идти на значительно бОльшие объемы (до миллиарда и даже дальше, пожалуй), не испытывая серьезных проблем с производительностью.
Valick
Цитата
то можете под каждый год отдельную таблицу заводить

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

_____________
Стимулятор ~yoomoney - 41001303250491
sergeiss
Все всё правильно сказали, только умное слово "партиции" не сказали. Это как раз логическое разбиение таблиц на части. В примере со школьным журналом очень удобно дробить по четвертям, либо отдельно для каждого класса на целый год. Тогда каждый кусочек будет небольшой. И всё будет просто летать.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
lodas
Может я и не правильно мыслю, но я думал с большими объемами данных будут работать с помощью хеширования и оптимизацией работы с MySQL(запросы, структура БД и т.д.)
wollk
Цитата (sergeiss @ 17.06.2013 - 20:06)
Все всё правильно сказали, только умное слово "партиции" не сказали. Это как раз логическое разбиение таблиц на части. В примере со школьным журналом очень удобно дробить по четвертям, либо отдельно для каждого класса на целый год. Тогда каждый кусочек будет небольшой. И всё будет просто летать.

Всем большое спасибо, очень познавательно ! Расскажите пожалуйста подробнее про "партиции", не очень понял.
sergeiss
Насчет партиций: "гуглю за ваш счет" (с)

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
wollk
Цитата (sergeiss @ 18.06.2013 - 04:47)
Насчет партиций: "гуглю за ваш счет" (с)

Спасибо, нашёл. (просто не удобно с телефона искать информаиию в интернете, вот и спросил не по гуглив)
Ребята, а как быть с ID, их кк бы можно вообще не использовать в данном случае с оценками, ведь есть дата, ученик, предмет. А если использовать, то может лучше генерировать численно-символьные ID, или миллиардные числа это тоже нормально ?
glock18
Цитата (wollk @ 18.06.2013 - 09:11)
А если использовать, то может лучше генерировать численно-символьные ID, или миллиардные числа это тоже нормально ?

миллиардные числа гораздо более нормальны, чем численно-символьные ID
wollk
Цитата (glock18 @ 18.06.2013 - 09:19)
Цитата (wollk @ 18.06.2013 - 09:11)
А если использовать, то может лучше генерировать численно-символьные ID, или миллиардные числа это тоже нормально ?

миллиардные числа гораздо более нормальны, чем численно-символьные ID

Т.е. принцип чем короче, тем проще запомнить работает только для человека. Ну в принципе да, ведь число проще перевести в двоичный код. Спасибо !
sergeiss
Их не надо переводить в двоичные чмсла... В компе они и так в двоичном виде хранятся.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
wollk
Цитата (sergeiss @ 18.06.2013 - 10:36)
Их не надо переводить в двоичные чмсла... В компе они и так в двоичном виде хранятся.

Эм.. я знаю, я просто говорю... Ведь компьютеру тоже надо переводить инфу в двоичный код, ладно.. не важно. Я просто теоретически подумал, что проще циферки перевести, чем слова кодировать....
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.