Ответы пользователя по тегу Проектирование баз данных
  • Правильно ли я спроектировал логическую модель базы данных?

    @Akela_wolf
    Extreme Programmer
    В целом выглядит прилично. У меня 2 замечания:
    1. "Кольцо" между subs и projects: subs.project_id ссылается на project, project.sub_id ссылается на sub. Мне так кажется что-то одно тут лишнее.
    2. Связь между projects и modules вида "много-много". У вас реально один модуль может входить в несколько проектов? Если да, то ОК. Если нет - то я бы убрал промежуточную таблицу.
    Ответ написан
    1 комментарий
  • Проектирование БД, какую СУБД выбрать?

    @Akela_wolf
    Extreme Programmer
    Ваши нагрузки легко выдержит любая SQL СУБД - MySQL, PostgreSQL.

    Преждевременная оптимизация - зло. Начните с простых, давно уже известных вещей. А затем уже, по мере выявления узких мест - оптимизируйте.
    Ответ написан
    1 комментарий
  • Как правильно сделать структуру базы данных?

    @Akela_wolf
    Extreme Programmer
    А первый вариант чем кроме размера таблицы не устраивает?
    А размер - ну такое дело. Если данные нужны - их нужно хранить. Индексы по данной таблице позволят иметь приличную скорость выборки (по крайней мере пока там не сотни миллионов записей об этом можно не думать).

    Я бы пошел по первому варианту, ибо преждевременная оптимизация - зло. Когда будет реальная проблема с этой таблицей - тогда и думать как её решать.
    Ответ написан
  • Как правильно реализовать структуру таблицы mysql?

    @Akela_wolf
    Extreme Programmer
    Если у новости одна картинка - можно прямо в таблицу новости засунуть (кстати, а модерируется только картинка? Сама новость не проходит модерацию?)

    Если у новости несколько картинок - в отдельную таблицу. Ну будет отдельный запрос, по индексу он отработает быстро, ничего страшного в нем нет.
    Ответ написан
    Комментировать
  • Какой язык выбрать для веб-приложения для работы с БД?

    @Akela_wolf
    Extreme Programmer
    Да в общем-то любой. Но если знаком с C# - бери платформу ASP.NET
    Опыт в этой технологии лишним не будет.
    Ответ написан
    Комментировать
  • Как спроектировать базу для приложения заметочника?

    @Akela_wolf
    Extreme Programmer
    Если вся таблица из БД прилетает в браузер, а затем браузер с этим миллионом разбирается - это неправильно.
    Браузер шлет запрос, типа "дай мне заметки с такими-то тегами, 50 штук", "дай мне заметки за февраль, 3 страница, 50 штук" и т.п. А сервер разбирается и строит запрос в БД. При нормальном АПИ вы сможете менять структуру данных в БД без необходимости переделывать клиент.

    Сейчас, возможно и нет смысла разносить все данные по разным таблицам: категории, теги и пр. На масштабах до миллиона строк нормальная СУБД перелопатит одну таблицу со вполне приличной скоростью, в режиме "приложение для себя" вы вряд ли заметите тормоза. Разнесение данных по отдельным таблицам дает:
    а) упрощение управления всем этим (например получить список категорий или список тегов, переименовать тег и т.п.)
    б) опыт подобной нормализации БД.

    Но в целом, для того чтобы пользоваться подобным приложением в личных целях это необязательно.
    Ответ написан
    Комментировать
  • Как спроектировать календарь занятий?

    @Akela_wolf
    Extreme Programmer
    Таблица под типы занятий (если она тебе нужна): тренировка, встреча, визит к врачу и т.д.
    Таблица под конкретные занятия - содержит ссылку на тип занятия и конкретную дату и время
    Таблица под расписание повторяющихся занятий - содержит ссылку на тип занятия и расписание (каждый понедельник, каждую третью среду и т.д.)

    По таблице с расписаниями + по таблице конкретных занятий и строится этот график. Как вариант по таблице расписаний могут создаваться записи в таблице конкретных занятий - удобно чтобы видеть что по средам у тебя визит к родителям, а по пятницам - тренировка (но конкретно в эту пятницу - свидание). Но здесь есть как плюсы так и минусы в создании конкретных записей по расписанию.
    Ответ написан
    1 комментарий
  • Как лучше организовать базу данных товаров?

    @Akela_wolf
    Extreme Programmer
    Разумеется в одну таблицу.

    Запомните - никогда однородные данные не должны рассыпаться на несколько табличек (за исключением шардирования/партиционирования, но вам до этой темы далеко еще). Если вам нужно "раскрасить" данные по группам, видам, назначению и т.п. образом - это делается при помощи атрибутов данных в таблице, никак не с помощью разделения данных на несколько таблиц.
    Ответ написан
    2 комментария