Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Проектирование БД Новый топик    Ответить
 Лучшее решение для проектирования БД  [new]
YolleR
Member

Откуда:
Сообщений: 8
Я хочу создать базу данных для записи тренеровок. Есть два типа тренировок. Количественный (отжимания, приседания), дистанция (велосипед, бег). В количественных тренингах количество определяется в подходах.

Я попытался разделить данные и сделал общие данные в таблице WorkOut, но соединение получилось 1 к 1. Или следует полностью разделить таблицы DistanceWorkout и NumberWorkout и удалить таблицу Workout?
Как лучше поступить в данной ситуации?
13 авг 19, 17:53    [21948459]     Ответить | Цитировать Сообщить модератору
 Re: Лучшее решение для проектирования БД  [new]
YolleR
Member

Откуда:
Сообщений: 8
Структура БД сейчас:

К сообщению приложен файл. Размер - 15Kb
13 авг 19, 17:54    [21948461]     Ответить | Цитировать Сообщить модератору
 Re: Лучшее решение для проектирования БД  [new]
KreatorXXI
Member

Откуда: Москва
Сообщений: 780
YolleR,

один к одному не рекомендуется. А что такое ID_Workout?
13 авг 19, 18:34    [21948484]     Ответить | Цитировать Сообщить модератору
 Re: Лучшее решение для проектирования БД  [new]
SERG1257
Member

Откуда:
Сообщений: 2663
Соединение не 1:1, а 1:0, то бишь у дополнительных таблиц может записи и не быть.

ID дополнительным таблицам нафиг не нужно, id_workout будет и primary key и foreign key одновременно
13 авг 19, 21:45    [21948617]     Ответить | Цитировать Сообщить модератору
 Re: Лучшее решение для проектирования БД  [new]
YolleR
Member

Откуда:
Сообщений: 8
SERG1257, можно ли так сделать? или искать другое решение проектирования?
Задача ещё в том, что у всех тренировок ID был различным, то есть, просто сделать полноценную таблицу Количественные тренировки и тренировки на дистанцию не получиться, тогда у них будут одинаковые ID
14 авг 19, 00:15    [21948719]     Ответить | Цитировать Сообщить модератору
 Re: Лучшее решение для проектирования БД  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48131

YolleR
у них будут одинаковые ID

Это зависит от способа его генерации.

Posted via ActualForum NNTP Server 1.5

14 авг 19, 00:19    [21948723]     Ответить | Цитировать Сообщить модератору
 Re: Лучшее решение для проектирования БД  [new]
YolleR
Member

Откуда:
Сообщений: 8
Объясните пожалуйста, нормальная ли структура на картинке?
Или так строить бд нельзя.
Если есть что-то лучше, подскажите в каком направлении посмотреть, т.к. сколько вариантов не пробовал, всегда прихожу к этому
14 авг 19, 00:21    [21948724]     Ответить | Цитировать Сообщить модератору
 Re: Лучшее решение для проектирования БД  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48131

Не сомневайся, реализуй. Ненормальная структура базы всегда вылезет в виде кривых и
тормозных запросов. Вот тогда и переделаешь всё ещё раз, правильно. Или два раза.

Posted via ActualForum NNTP Server 1.5

14 авг 19, 00:35    [21948729]     Ответить | Цитировать Сообщить модератору
 Re: Лучшее решение для проектирования БД  [new]
SERG1257
Member

Откуда:
Сообщений: 2663
>SERG1257, можно ли так сделать?
А кто запретит?

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

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

>Задача ещё в том, что у всех тренировок ID был различным
Нет у тебя тренировок. Есть таблицы и поля. В какой таблице какие поля должны быть различны?
14 авг 19, 00:41    [21948731]     Ответить | Цитировать Сообщить модератору
 Re: Лучшее решение для проектирования БД  [new]
YolleR
Member

Откуда:
Сообщений: 8
SERG1257
>SERG1257, можно ли так сделать?
Нет у тебя тренировок. Есть таблицы и поля. В какой таблице какие поля должны быть различны?


Должна быть возможность вывода данных из таблиц DistanceWorkout и NumberWorkout, с сортировкой по их ID, т.е. записи должны выводиться по очереди добавления (можно конечно добавить дату и время, и сортировать по ней, но думаю по ID проще)
14 авг 19, 01:07    [21948738]     Ответить | Цитировать Сообщить модератору
 Re: Лучшее решение для проектирования БД  [new]
SERG1257
Member

Откуда:
Сообщений: 2663
Нет, ты выводишь данные из общей таблицы, лефтджойнишь их с обоими таблицами и сортируешь как хочешь.
14 авг 19, 05:44    [21948768]     Ответить | Цитировать Сообщить модератору
 Re: Лучшее решение для проектирования БД  [new]
KreatorXXI
Member

Откуда: Москва
Сообщений: 780
Я бы из четырёх таблиц сделал бы две. Не могу понять смысла в этой схеме.
14 авг 19, 10:34    [21948884]     Ответить | Цитировать Сообщить модератору
 Re: Лучшее решение для проектирования БД  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 728
YolleR
Задача ещё в том, что у всех тренировок ID был различным, то есть, просто сделать полноценную таблицу Количественные тренировки и тренировки на дистанцию не получиться, тогда у них будут одинаковые ID

ID один, а типы разные
-- таб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


как-то так
14 авг 19, 12:21    [21949062]     Ответить | Цитировать Сообщить модератору
 Re: Лучшее решение для проектирования БД  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 728
iteration вроде не нужен, можно сгруппировать по wid + type и отсортировать по added
14 авг 19, 13:22    [21949165]     Ответить | Цитировать Сообщить модератору
 Re: Лучшее решение для проектирования БД  [new]
vmag
Member

Откуда: MP
Сообщений: 3235
YolleR
Как лучше поступить в данной ситуации?


В единицах измерения подходы, дистанции, что там ещё... Например:
- Для отжимания Значение = 10 Описание = Раз, соответственно в Тренинге будет К-во отжиманий (подходов) по 10 раз...
- Для бега Значение = 1 Описание = км (или 100 + м), соответственно в Тренинге будет сколько забегов на 1 км или стометровку...

К сообщению приложен файл. Размер - 59Kb
18 авг 19, 15:10    [21951992]     Ответить | Цитировать Сообщить модератору
 Re: Лучшее решение для проектирования БД  [new]
vmag
Member

Откуда: MP
Сообщений: 3235
Желательно топик обзывать по существу... ну типа не могу связать в кучу три таблицы...
А то все ломятся за лучшим решением по проектированию БД...Картинка с другого сайта.
18 авг 19, 15:14    [21951993]     Ответить | Цитировать Сообщить модератору
 Re: Лучшее решение для проектирования БД  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 58418
Блог
vmag
А то все ломятся за лучшим решением по проектированию БД...Картинка с другого сайта.

А натыкаются на очередной любительский конструктор табличек
18 авг 19, 15:23    [21951994]     Ответить | Цитировать Сообщить модератору
 Re: Лучшее решение для проектирования БД  [new]
Serguei
Member

Откуда: Papua New Guinea
Сообщений: 680
YolleR
Структура БД сейчас:

Картинка с другого сайта.


На мой взгляд отдельное упражнение это exercise, а workout это комплекс упражнений внутри одной тренировки.
В sets для чего datetime?
Схема базы неправильная (связка workout-Numberworkout-sets) потому что вы до конца не понимаете что вы хотите сохранить в базе (нету у вас постановки задачи даже в голове).
25 авг 19, 09:42    [21957133]     Ответить | Цитировать Сообщить модератору
Все форумы / Проектирование БД Ответить