powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как лучше хранить ведомости (журнал класса)?
27 сообщений из 27, показаны все 2 страниц
Как лучше хранить ведомости (журнал класса)?
    #38968685
Как лучше хранить ведомость типа журнал класса с промежуточными оценками?
Понятно, что обязательны таблицы учеников, учителей, предметов. Достаточно хранить итоговую оценку.
Но как хранить ведомость (рис. внизу)?

Конечно, можно сделать таблицу абсолютно всех оценок
дата-пара-предмет-ученик- ...

но тогда в в такой таблице слишком строк.
Есть идея - все пихать в одну строку с разделителями, типа:

ключ ведомости - "Андреев$5$3$3$5$5#Баранкин$4$5$3$5$4#..
но кажется морочно обновлять такие данные.

Может, есть хорошие идеи?
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38968696
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не надо хороших идей. Достаточно банальной нормализации. Ваше же предложение не может быть оценено цензурными словами.
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38968707
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удав Анакондатогда в в такой таблице слишком строк.
Не парься. В такой таблице "слишком много строк" накопится лет за 100, не раньше.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38968737
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удав АнакондаНо как хранить ведомость (рис. внизу)?
Конечно, можно сделать таблицу абсолютно всех оценок
дата-пара-предмет-ученик- ...


Именно так, и только так и надо делать.



но тогда в в такой таблице слишком строк.

Это -- твои девичьи мечты. Не будет там много строк. даже если 365*1000


Есть идея - все пихать в одну строку с разделителями, типа:

Нарушение 1НФ.
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38968846
MasterZiv
Это -- твои девичьи мечты. Не будет там много строк. даже если 365*1000

Есть идея - все пихать в одну строку с разделителями, типа:

Нарушение 1НФ.

Для меня и 100 строк много :). Из-за 10 ведомостей 1000 строк? Все к тому привыкли, но если подумать - не глупо ли?
Видимо, мне нужно нереляционную бд. Только копаться лень.

Вот был бы тип данных в мускуле "ключ-значение, ключ значение... "
Штоб я мог хранить свою таблу как "11-Андреев 12-5 13-3 14-3..."

Вот это точно мечты... опередившие свое время :D
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38968914
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для меня и 100 строк много :). Из-за 10 ведомостей 1000 строк?
Вот это точно мечты... опередившие свое время :D[/quot]

похоже автор совсем ... как бы сказать, чтобы не получить гипотетический бан...
... очень малограмотный специалист!
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38968958
MasterZivпохоже автор совсем ... как бы сказать, чтобы не получить гипотетический бан...
... очень малограмотный специалист!

Может быть. Но я же могу быть гипотетически грамотным специалистом в другой области? Держите рамки :D
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38968962
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удав АнакондаДля меня и 100 строк много :).
Ну, если ты их обрабатываешь на бумажке карандашиком...

Удав АнакондаВидимо, мне нужно нереляционную бд.
Нет, тебе достаточно воспользоваться компьютером с любой БД.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38968983
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удав АнакондаМожет, есть хорошие идеи?
Сделайте таблицу Табель_Математика_Декабрь и в ней колонки Фамилия, #1, #2, #3 ... #31.
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38969138
softwarerУдав АнакондаМожет, есть хорошие идеи?
Сделайте таблицу Табель_Математика_Декабрь и в ней колонки Фамилия, #1, #2, #3 ... #31.
Хм, не такая безумная идея, как на первый взгляд...
Табель_Математика_М11_1sem_2015.
Табель_Математика_М11_2sem_2015.
...

sql-щики скажут стеб... :(
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38969151
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удав Анакондаsql-щики скажут стеб... :(
Ух ты, до него-таки дошло...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38969202
Дык, добить вас? Все это приводит к идее таблицы с эпохальным количеством колонок =)

Таблица Ведомости

id group yea sem predmet A1 A2 A3 ... B1 B2 B3 ... C1 C2 C3...
1 М11 2015 1 Математика Арбузов 5 4 Баранкин 2 3 Буш 2 3
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38969617
azelentsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Удав Анаконда,

Почему не хотите использовать таблицу вида: ID Урока- ID Ученика-Оценка?
Как это показывать в интерфейсе - это уже вы сами решайте
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38969702
azelentsov,
я может виноват, не стал вдаваться в подробности. Там кроме оценок с датами, будут еще колонки с самостоятельной работой, лабораторные . Поэтому неохото.
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38969857
azelentsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Удав Анаконда, и что?

Если за одно занятие ученик может получить несколько оценок, то это реализуется через добавление поля с типом оценки (ответ у доски, контрольная работа, лабораторная работа и т.п.)
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38970392
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удав АнакондаДык, добить вас? Все это приводит к идее таблицы с эпохальным количеством колонок =)

Таблица Ведомости

id group yea sem predmet A1 A2 A3 ... B1 B2 B3 ... C1 C2 C3...
1 М11 2015 1 Математика Арбузов 5 4 Баранкин 2 3 Буш 2 3

Чтобы избежать эпохального количества колонок (индексы которых и обрабатывать надо соответствующе, то есть эпохально) и при этом обойтись минимумом строк в таблице и собственно количеством таблиц
Ну то есть оптимизировать все количества по максимуму, то единственно ВЕРНЫЙ путь - разделилтеди, разделители только разделители. Тут фантазия может работать ещё долго: можно использовать в качестве разделителей не только # и $, но и более тривиальные символы ; : " ' - _ и т.д.
Разделители дают невообразимо большой спектр возможностей по хранению информации в минимуме ячеек.
Ну а при обновлении, где ж трудности возникнут? Разбить строку по разделителям, записать в нужные места требуемую информацию и всё снова соединить в единое целое. Все три действия над одной ячейкой одной таблицы. Это не то что обновлять десятки (а то и сотни) строк десятка таблиц.
То есть даже невооружённым взглядом, не прибегая к какому-то сложному анализу видно, что использование разделителей в десятки, а то сотни раз проще нормализованной БД.
Однозначно.
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38970396
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.FontaineУдав АнакондаДык, добить вас? Все это приводит к идее таблицы с эпохальным количеством колонок =)

Таблица Ведомости

id group yea sem predmet A1 A2 A3 ... B1 B2 B3 ... C1 C2 C3...
1 М11 2015 1 Математика Арбузов 5 4 Баранкин 2 3 Буш 2 3

Чтобы избежать эпохального количества колонок (индексы которых и обрабатывать надо соответствующим способом, то есть, эпохально) и при этом обойтись минимумом строк в таблице и собственно количеством таблиц
Ну то есть оптимизировать все количества по максимуму, то единственно ВЕРНЫЙ путь - разделители , разделители и только разделители. Тут фантазия может работать ещё долго: можно использовать в качестве разделителей не только # и $, но и более тривиальные символы ; : " ' - _ и т.д.
Разделители дают невообразимо большой спектр возможностей по хранению информации в минимуме ячеек.
Ну а при обновлении, где ж трудности возникнут? Разбить строку по разделителям, записать в нужные места требуемую информацию и всё снова соединить в единое целое. Всего три действия над одной ячейкой одной таблицы. Это не то что обновлять десятки (а то и сотни) строк десятка таблиц.
То есть даже невооружённым взглядом, не прибегая к какому-то сложному анализу видно, что использование разделителей в десятки, а то сотни раз проще нормализованной БД.
Однозначно.

Немного подправил опечатки
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38970440
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.Fontaineобойтись минимумом строк в таблице и собственно количеством таблиц

Ну вот, наконец-то хоть кто-то сформулировал внятный критерий для оптимизации. Уже похвально.

Mr.Fontaineразделилтеди, разделители только разделители. Тут фантазия может работать ещё долго: можно использовать в качестве разделителей не только # и $, но и более тривиальные символы ; : " ' - _ и т.д.

Если фантазия проработает достаточно долго, она поймет, что разделителем может быть не обязательно один символ, а строка. Например, "<предмет>", "<фамилия>", "<оценка type=итоговая>" и т.д, и заново откроет XML и понятие схемы.

Mr.FontaineТо есть даже невооружённым взглядом, не прибегая к какому-то сложному анализу видно, что использование разделителей в десятки, а то сотни раз проще нормализованной БД.
Однозначно.

Проще хранение, но сложнее работа. Например: посчитать количество учеников, имеющих итоговый балл 4-5. Для нормализованной СУБД пишем простой запрос, который сам использует индексы, а для разделителей - творим хитрый тормозной алгоритм.
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38970490
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Cane Cat Fisher]Mr.Fontaineобойтись минимумом строк в таблице и собственно количеством таблиц

Ну вот, наконец-то хоть кто-то сформулировал внятный критерий для оптимизации. Уже похвально.Cane Cat Fisher Этот критерий у автора темы в первом сообщении прописан (для него 100 строк уже много, надо уменьшать)

Cane Cat FisherMr.Fontaineразделилтеди, разделители только разделители. Тут фантазия может работать ещё долго: можно использовать в качестве разделителей не только # и $, но и более тривиальные символы ; : " ' - _ и т.д.

Если фантазия проработает достаточно долго, она поймет, что разделителем может быть не обязательно один символ, а строка. Например, "<предмет>", "<фамилия>", "<оценка type=итоговая>" и т.д, и заново откроет XML и понятие схемы.

Ну вот и помогли страждущему определить что ему надо

Mr.FontaineТо есть даже невооружённым взглядом, не прибегая к какому-то сложному анализу видно, что использование разделителей в десятки, а то сотни раз проще нормализованной БД.
Однозначно.

Проще хранение, но сложнее работа. Например: посчитать количество учеников, имеющих итоговый балл 4-5. Для нормализованной СУБД пишем простой запрос, который сам использует индексы, а для разделителей - творим хитрый тормозной алгоритм.
Ну лишнее можно и не придумывать. Автору темы требуется построить ведомость. Остальное - лишнее. При необходимости можно по распечатанной бумажке вручную сосчитать.
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38970597
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.FontaineНу лишнее можно и не придумывать. Автору темы требуется построить ведомость. Остальное - лишнее. При необходимости можно по распечатанной бумажке вручную сосчитать.
Ну если так рассуждать, то "единственно верный способ" - никакие не разделители, а одна запись с одним полем типа Image, в котором хранится картинка из первого поста. Вот это, согласитесь, оптимизация так оптимизация.
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38970663
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherMr.Fontaineобойтись минимумом строк в таблице и собственно количеством таблиц

Ну вот, наконец-то хоть кто-то сформулировал внятный критерий для оптимизации. Уже похвально.


Это -- не критерий оптимизации для СУБД, для РСУБД -- тем более.
Это просто хрень.

(Топик стартеру: так не надо делать, это грубая ошибка проектирования. Надо делать "таблицу абсолютно всех оценок: дата-пара-предмет-ученик- ...")

Успехов всем.
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38970666
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин Ну если так рассуждать, то "единственно верный способ" - никакие не разделители, а одна запись с одним полем типа Image, в котором хранится картинка из первого поста. Вот это, согласитесь, оптимизация так оптимизация.

А следующий логичный шаг -- отказ от испльзования СУБД, хранение данных в текстовом или бинарном файле.
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38970705
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
azelentsovУдав Анаконда, и что?

Если за одно занятие ученик может получить несколько оценок, то это реализуется через добавление поля с типом оценки (ответ у доски, контрольная работа, лабораторная работа и т.п.)
Более того, не исключена возможность получения на одном уроке нескольких оценок одного типа (бывало или к доске несколько раз вызывали, или две лабораторных за одно занятие выполнить тоже в общем-то не проблема)
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38970711
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivЭто -- не критерий оптимизации для СУБД, для РСУБД -- тем более.
Это просто хрень.
(Топик стартеру: так не надо делать, это грубая ошибка проектирования. Надо делать "таблицу абсолютно всех оценок: дата-пара-предмет-ученик- ...")
Успехов всем.
Думаю, что не стоит так переживать за топикстартера: удав - животное умное, ощущает он стёб
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38970938
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удав Анакондаключ ведомости - "Андреев$5$3$3$5$5#Баранкин$4$5$3$5$4#..
но кажется морочно обновлять такие данные.

Стоит разделить для себя понятия "отображение" и "хранение" данных.
Вывод "как на картинке" в одну таблицу не обязательно подразумевает хранение в таком же точно виде.

Помимо "обновления" в указанном Вами подходе есть еще минимум штук 20 иных недостатков, приведу некоторые из них:
...................................
4. Не каждый ученик получает отметку на каждом уроке. Т.о. вам либо вносить для каждой отметки дату в разделитель, тем самым усложняя формат строки, либо "вводить" служебную отметку "0".
.................................
7. Поиск отметок по условию "Ученик-Дата" - первая нетривиальная задача.
.................................
9. Средний бал ученика = вместо встроенных в СУБД функций типа AVG выльется в глобальный парсинг строк.
.................................
17. Назвать такой вариант хранения оптимальным с точки зрения объема - не поднимается ни рука, ни язык.
.................................

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

Во всех остальных случаях = вряд ли такой вариант подойдет.
Удав АнакондаШтоб я мог хранить свою таблу как "11-Андреев 12-5 13-3 14-3..."

Так а что мешает так хранить? Транспонируйте свою матрицу и все прекрасно ложиться в БД + уйдите от "плоского" мышления форматами 2D-таблиц.
БД позволяет хранить N-мерные представления - куда интереснее 2D.
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38971213
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удав АнакондаКак лучше хранить ведомость типа журнал класса с промежуточными оценками?
Понятно, что обязательны таблицы учеников, учителей, предметов. Достаточно хранить итоговую оценку.
Но как хранить ведомость (рис. внизу)?

Конечно, можно сделать таблицу абсолютно всех оценок
дата-пара-предмет-ученик- ...

но тогда в в такой таблице слишком строк.
Есть идея - все пихать в одну строку с разделителями, типа:

ключ ведомости - "Андреев$5$3$3$5$5#Баранкин$4$5$3$5$4#..
но кажется морочно обновлять такие данные.

Может, есть хорошие идеи?

а зачем таблица?
правильно написанный парсер легко будет хранить всё в текстовом файле
...
Рейтинг: 0 / 0
Как лучше хранить ведомости (журнал класса)?
    #38971556
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шайтана зачем таблица?
правильно написанный парсер легко будет хранить всё в текстовом файле
а зачем файл? Правильно обученная бабушка будет вести ведомость в журнале в нужном виде.
Такая реализация может оказаться дешевле, нежели софт девелопить, а потом его сопровождать...

Еще вариант - ексель шаблоны - для задач учета и простейшей статистики - более чем достаточно. Серьезно.
...
Рейтинг: 0 / 0
27 сообщений из 27, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как лучше хранить ведомости (журнал класса)?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]