singlepost

Разработка базы данных << На главную или назад  

Ребят, кто знает подскажите:
БД делаю не часто, а тут дело такое, вообщем есть база данных поступающих студентов. Вопрос как правильней это все организовать – на каждый год поступления создавать новую таблицу (каждый год добавляется примерно 3000 записей – абитуриентов) или же все впихивать все в 1 таблицу, а затем устаревшие записи скидывать в дополнительную таблицу (записи должны быть сохранены на достаточно долгий период и могут иногда использоваться в запросах и составлении хранилищ)?
Прошу просто поделиться опытом, поскольку может кто такое делал когда-то подобные базы.
Примечание: активная часть данных это студенты поступавшие в течении последних 5 лет (с 1 до 5 го курса), остальные просто записываются в базу и редко используются.

28 ответов в теме “Разработка базы данных”

  1. 14
    Евгений Баталов ответил:

    Индексированные представления сделай для того что ты хотел в отдельные таблицы вынести и все.

  2. 13
    Андрей Жуков ответил:

    Спасибо всем за советы, буду разбираться!

  3. 12
    Гаяз Тугузбаев ответил:

    ну вот теперь собери, смоделируй и вперед к проектированию
    )))

  4. 11
    Леонид Максимов ответил:

    аналогично. только постарайтесь так, чтобы мухи отдельно – котлеты отдельно:

    Студенты: ИД, ФИО, Паспортные данные, …
    Группы: ИД, Название, Год_поступления, …
    Группы_студенты: Группа_ИД, Студент_ИД.
    ну и так далее.

    ЗЫ: SQL Server 2008 шутя справляется с сотнями тысяч записей. так что отдельный архив не нужен, главное индексы правильные создать.

  5. 10
    Илья Коробицын ответил:

    Три тысячи в год, 15 000 активных всего… Не думаю, что имеет смысл создавать отдельные таблицы, при таких числах это не даст особой выгоды.
    А вот архив стоит сделать отдельно.
    В итоге: одна база активных записей, одна база на архив.
    Раз в год активные переносятся в архив.
    И для каждой записи лучше хранить не номер курса, а год поступления – это избавит от мороки с ежегодными переназначениями(хоть она и не велика).

  6. 9
    Андрей Жуков ответил:

    На счет СУБД, база разрабатывается на SQL Server 2008, под Web-клиентов на Java

  7. 8
    Гаяз Тугузбаев ответил:

    я против нескольких таблиц для !студентов!
    если одну таблицу для всего использовать сложно, тогда таблицы необходимо использовать следующие:
    - абитуриенты
    - студенты
    - выпускники
    - резерв
    ==
    в случае надобности, всегда можно перебрасывать записи из одной в другую

  8. 7
    Антон Щиров ответил:

    3000 записей в год для СУБД это детский сад. Тем более при правильном проектировании. Если только это нормальная СУБД, а не какой-нибудь Paradox

    У нас за сутки добавляется где-то тысяч 5 записей. СУБД IB 2009

  9. 6
    Андрей Жуков ответил:

    Даже так, тогда думаю стоит опыт вашего универа перенять)). А насчет отчисления/перевода есть специальные таблицы, в которых содержатся характеристики этих движений (то есть куда, откуда, почему и тд).

  10. 5
    Константин Конашенков ответил:

    1. есть 5 таблиц на каждый курс актуальных на данный момент (их всегда будет 5, заголовок менятеся только 2005 5 курс, 2006 5 курс).
    2. есть таблицы отчисленных (Это для каждого года по таблице).
    3. есть таблица окончивших для каждого года (для 2005, 2006)

  11. 4
    Андрей Жуков ответил:

    Ок, спасибо, буду думать.

  12. 3
    Константин Конашенков ответил:

    У нас в универе так это все устроено, Хотя можно оставить 1 пункт (5 таблиц), удалить таблицы отчисленных и добавить поле отчислен в таком то году , в карточке студента. А вот если несколько раз отчислен , но это так тонкости

  13. 2
    Андрей Жуков ответил:

    Спасибо, то есть просто растет число таблиц: 1год ++1таблица! Хотелось бы узнать как бы это сказывалось на БД лет эдак через 15, и в связи с этим создать более менее универсальную структуру, чтоб ее почти не потребовалось модифицировать из-за проблем ФИЗИЧЕСКОЙ организации!

  14. 1
    Константин Конашенков ответил:

    А я бы сделал так:
    У нас 5 курсов ? , значит пять таблиц актуальных на данным момент. При отчислении Переносим в таблицу отчисленные в такомто году. Закончил , тогда кидаем в таблицу в таком то году закончившие. + Надо хранить (наверное) те кто отчислен с первого курса, ибо на первый курс не восстанавливают

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.