powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Лучшее решение для проектирования БД
18 сообщений из 18, страница 1 из 1
Лучшее решение для проектирования БД
    #39848947
YolleR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я хочу создать базу данных для записи тренеровок. Есть два типа тренировок. Количественный (отжимания, приседания), дистанция (велосипед, бег). В количественных тренингах количество определяется в подходах.

Я попытался разделить данные и сделал общие данные в таблице WorkOut, но соединение получилось 1 к 1. Или следует полностью разделить таблицы DistanceWorkout и NumberWorkout и удалить таблицу Workout?
Как лучше поступить в данной ситуации?
...
Рейтинг: 0 / 0
Лучшее решение для проектирования БД
    #39848948
YolleR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Структура БД сейчас:
...
Рейтинг: 0 / 0
Лучшее решение для проектирования БД
    #39848957
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YolleR,

один к одному не рекомендуется. А что такое ID_Workout?
...
Рейтинг: 0 / 0
Лучшее решение для проектирования БД
    #39848995
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соединение не 1:1, а 1:0, то бишь у дополнительных таблиц может записи и не быть.

ID дополнительным таблицам нафиг не нужно, id_workout будет и primary key и foreign key одновременно
...
Рейтинг: 0 / 0
Лучшее решение для проектирования БД
    #39849026
YolleR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257, можно ли так сделать? или искать другое решение проектирования?
Задача ещё в том, что у всех тренировок ID был различным, то есть, просто сделать полноценную таблицу Количественные тренировки и тренировки на дистанцию не получиться, тогда у них будут одинаковые ID
...
Рейтинг: 0 / 0
Лучшее решение для проектирования БД
    #39849028
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YolleRу них будут одинаковые ID

Это зависит от способа его генерации.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Лучшее решение для проектирования БД
    #39849029
YolleR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Объясните пожалуйста, нормальная ли структура на картинке?
Или так строить бд нельзя.
Если есть что-то лучше, подскажите в каком направлении посмотреть, т.к. сколько вариантов не пробовал, всегда прихожу к этому
...
Рейтинг: 0 / 0
Лучшее решение для проектирования БД
    #39849030
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не сомневайся, реализуй. Ненормальная структура базы всегда вылезет в виде кривых и
тормозных запросов. Вот тогда и переделаешь всё ещё раз, правильно. Или два раза.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Лучшее решение для проектирования БД
    #39849032
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>SERG1257, можно ли так сделать?
А кто запретит?

>Объясните пожалуйста, нормальная ли структура на картинке?
Структура как структура.

>или искать другое решение проектирования?
Ищи здесь же или в гугле на тему "наследование таблиц"
Найдешь варианты с одной, двумя и тремя таблицами
Твой вариант последний.

>Задача ещё в том, что у всех тренировок ID был различным
Нет у тебя тренировок. Есть таблицы и поля. В какой таблице какие поля должны быть различны?
...
Рейтинг: 0 / 0
Лучшее решение для проектирования БД
    #39849036
YolleR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257>SERG1257, можно ли так сделать?
Нет у тебя тренировок. Есть таблицы и поля. В какой таблице какие поля должны быть различны?

Должна быть возможность вывода данных из таблиц DistanceWorkout и NumberWorkout, с сортировкой по их ID, т.е. записи должны выводиться по очереди добавления (можно конечно добавить дату и время, и сортировать по ней, но думаю по ID проще)
...
Рейтинг: 0 / 0
Лучшее решение для проектирования БД
    #39849057
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, ты выводишь данные из общей таблицы, лефтджойнишь их с обоими таблицами и сортируешь как хочешь.
...
Рейтинг: 0 / 0
Лучшее решение для проектирования БД
    #39849103
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы из четырёх таблиц сделал бы две. Не могу понять смысла в этой схеме.
...
Рейтинг: 0 / 0
Лучшее решение для проектирования БД
    #39849181
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YolleRЗадача ещё в том, что у всех тренировок ID был различным, то есть, просто сделать полноценную таблицу Количественные тренировки и тренировки на дистанцию не получиться, тогда у них будут одинаковые ID
ID один, а типы разные
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
-- таб1: workout
id serial
,type smallint -- кардио/силовые/секс
,added ts NOT NULL default now()
,closed ts

-- таб2: sets
wid int -- workout ID
,cnt smallint NOT NULL default 1 -- подход №
,type smallint -- тут тип это, например: жим, присед, бег, прыг, плав, вело
,iteration smallint NOT NULL default 1 -- повтор №
,load smallint -- нагрузка (кг/км)
,added ts NOT NULL default now()
,closed ts



как-то так
...
Рейтинг: 0 / 0
Лучшее решение для проектирования БД
    #39849227
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iteration вроде не нужен, можно сгруппировать по wid + type и отсортировать по added
...
Рейтинг: 0 / 0
Лучшее решение для проектирования БД
    #39850815
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YolleRКак лучше поступить в данной ситуации?

В единицах измерения подходы, дистанции, что там ещё... Например:
- Для отжимания Значение = 10 Описание = Раз, соответственно в Тренинге будет К-во отжиманий (подходов) по 10 раз...
- Для бега Значение = 1 Описание = км (или 100 + м), соответственно в Тренинге будет сколько забегов на 1 км или стометровку...
...
Рейтинг: 0 / 0
Лучшее решение для проектирования БД
    #39850816
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Желательно топик обзывать по существу... ну типа не могу связать в кучу три таблицы...
А то все ломятся за лучшим решением по проектированию БД...
...
Рейтинг: 0 / 0
Лучшее решение для проектирования БД
    #39850817
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmagА то все ломятся за лучшим решением по проектированию БД...

А натыкаются на очередной любительский конструктор табличек
...
Рейтинг: 0 / 0
Лучшее решение для проектирования БД
    #39853526
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YolleRСтруктура БД сейчас:



На мой взгляд отдельное упражнение это exercise, а workout это комплекс упражнений внутри одной тренировки.
В sets для чего datetime?
Схема базы неправильная (связка workout-Numberworkout-sets) потому что вы до конца не понимаете что вы хотите сохранить в базе (нету у вас постановки задачи даже в голове).
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Лучшее решение для проектирования БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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