Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с нормализацией следующей схемы. / 12 сообщений из 12, страница 1 из 1
25.05.2016, 14:57
    #39243269
dimon-hacker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с нормализацией следующей схемы.
Помогите с нормализацией следующей схемы.
Существует 3 таблицы, пользователи,вопросы, результаты.
В таблице Results хранятся баллы всех пользователей по всем вопросам, НО уникальным в таблице Results будет ключ
users.id-Questions.idQuestions-Results.vozrast, т.к. на вопросы можно отвечать повторно, если в прошлом баллы не были набраны, а возраст стал больше предыдущего. Возраст вычисляется как разница системного времени от даты рождения в таблице users.
Будет ли такая схема нормальной и в какой форме, или следует как-то отделить атрибут возраст?
...
Рейтинг: 0 / 0
25.05.2016, 15:15
    #39243286
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с нормализацией следующей схемы.
dimon-hacker,

у тебя нарисовано немного не то, что написано.
нарисуй нормально.
...
Рейтинг: 0 / 0
25.05.2016, 15:20
    #39243294
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с нормализацией следующей схемы.
dimon-hackerВ таблице Results хранятся баллы всех пользователей по всем вопросам, НО уникальным в таблице Results будет ключ
users.id-Questions.idQuestions-Results.vozrast, т.к. на вопросы можно отвечать повторно, если в прошлом баллы не были набраны, а возраст стал больше предыдущего.
Будет ли такая схема нормальной и в какой форме, или следует как-то отделить атрибут возраст?


ничего ненормально го в этом нет.

другое дело, что у тебя не будет сущности «сеанс ответа пользователя на вопросы", и если она будет нужна, то её придется собирать из таблицы ответов distinct-ом.
...
Рейтинг: 0 / 0
25.05.2016, 15:30
    #39243299
dimon-hacker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с нормализацией следующей схемы.
MasterZiv,

Из таблицы результатов нужно будет собирать такие данные:
Сколько баллов за данный вопрос(группу вопросов), в конкретном возрасте получил такой- то пользователь. Эти данные будут наноситься на график и отображать динамику изменений.
...
Рейтинг: 0 / 0
25.05.2016, 15:31
    #39243301
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с нормализацией следующей схемы.
dimon-hackerБудет ли такая схема нормальной и в какой форме, или следует как-то отделить атрибут возраст?Мгновенное значение свойства "текущий возраст" экземпляра сущности "пользователь" являентся значимым атрибутом экземпляра сущности "ответ". Схема - нормальная.

dimon-hackerна вопросы можно отвечать повторно, если в прошлом баллы не были набраны, а возраст стал больше предыдущегоПредставленная схема не позволяет проводить такой тип контроля непротиворечивости данных. Для поддержания целостности данных необходим уникальный индекс из 3 полей (user,question,vozrast) для исключения повторного ответа при том же возрасте вне зависимости от ответа. Полное же исключение ответа после того, как ответом были набраны баллы, вне зависимости от возраста, в MySQL без переопределения данных или дополнительной расчётной над-логики нереализуем.
...
Рейтинг: 0 / 0
25.05.2016, 15:32
    #39243305
dimon-hacker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с нормализацией следующей схемы.
dimon-hackerБудет ли такая схема нормальной и в какой форме?
Я имею ввиду правила нормализации БД с первой по 6 форму.
...
Рейтинг: 0 / 0
25.05.2016, 15:36
    #39243308
dimon-hacker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с нормализацией следующей схемы.
Представленная схема не позволяет проводить такой тип контроля непротиворечивости данных. Для поддержания целостности данных необходим уникальный индекс из 3 полей (user,question,vozrast) для исключения повторного ответа при том же возрасте вне зависимости от ответа. Полное же исключение ответа после того, как ответом были набраны баллы, вне зависимости от возраста, в MySQL без переопределения данных или дополнительной расчётной над-логики нереализуем.
Этот контроль осуществляется внешним приложением использующим данную БД.
Думайте стоит решить этот вопрос средствами СУБД?
...
Рейтинг: 0 / 0
25.05.2016, 15:38
    #39243309
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с нормализацией следующей схемы.
dimon-hackerконтроль осуществляется внешним приложением использующим данную БД.
Думайте стоит решить этот вопрос средствами СУБД?
Я не верю внешним приложениям. Если средства СУБД позволяют накосячить в данных - это обязательно произойдёт. Вопрос лишь в том, насколько быстро, как часто, и сильно ли больно.
...
Рейтинг: 0 / 0
25.05.2016, 15:53
    #39243330
dimon-hacker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с нормализацией следующей схемы.
Akina,

Я так понял что данная команда
alter table results
add primary key (id, idQuestions,vozrast);
Создает первичный ключ, состоящий из 3-х полей и исключает возможность повторения ответа на вопрос в текущем возрасте.

Других изменений в схему не требуется?
...
Рейтинг: 0 / 0
25.05.2016, 16:39
    #39243351
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с нормализацией следующей схемы.
Почему первичный? как раз в такой таблице я бы предложил синтетический первичный, а этот индекс просто UNIQUE. Да ещё с учётом запросной нагрузки над порядком полей в нём поколдовал бы...
...
Рейтинг: 0 / 0
25.05.2016, 17:21
    #39243380
dimon-hacker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с нормализацией следующей схемы.
Akina,
По вашим ответам вижу, что вы профессионал, боюсь на данном этапе мне пока сложно вас понять, но хочу поблагодарить вас и всех остальных, что помогаете!
Остановлюсь пока на том, что есть. Создал уникальный ключ из 3 полей, тем самым запретив дублирование без изменения возраста. Разобрались с нормальностью, правда так и не понял какой она формы...
Всем еще раз спасибо!
...
Рейтинг: 0 / 0
27.05.2016, 20:55
    #39245313
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с нормализацией следующей схемы.
dimon-hackerdimon-hackerБудет ли такая схема нормальной и в какой форме?
Я имею ввиду правила нормализации БД с первой по 6 форму.

все нормально в этом смысле.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с нормализацией следующей схемы. / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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