
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
25.05.2016, 14:57
|
|||
|---|---|---|---|
|
|||
Помогите с нормализацией следующей схемы. |
|||
|
#18+
Помогите с нормализацией следующей схемы. Существует 3 таблицы, пользователи,вопросы, результаты. В таблице Results хранятся баллы всех пользователей по всем вопросам, НО уникальным в таблице Results будет ключ users.id-Questions.idQuestions-Results.vozrast, т.к. на вопросы можно отвечать повторно, если в прошлом баллы не были набраны, а возраст стал больше предыдущего. Возраст вычисляется как разница системного времени от даты рождения в таблице users. Будет ли такая схема нормальной и в какой форме, или следует как-то отделить атрибут возраст? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2016, 15:15
|
|||
|---|---|---|---|
Помогите с нормализацией следующей схемы. |
|||
|
#18+
dimon-hacker, у тебя нарисовано немного не то, что написано. нарисуй нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2016, 15:20
|
|||
|---|---|---|---|
Помогите с нормализацией следующей схемы. |
|||
|
#18+
dimon-hackerВ таблице Results хранятся баллы всех пользователей по всем вопросам, НО уникальным в таблице Results будет ключ users.id-Questions.idQuestions-Results.vozrast, т.к. на вопросы можно отвечать повторно, если в прошлом баллы не были набраны, а возраст стал больше предыдущего. Будет ли такая схема нормальной и в какой форме, или следует как-то отделить атрибут возраст? ничего ненормально го в этом нет. другое дело, что у тебя не будет сущности «сеанс ответа пользователя на вопросы", и если она будет нужна, то её придется собирать из таблицы ответов distinct-ом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2016, 15:30
|
|||
|---|---|---|---|
|
|||
Помогите с нормализацией следующей схемы. |
|||
|
#18+
MasterZiv, Из таблицы результатов нужно будет собирать такие данные: Сколько баллов за данный вопрос(группу вопросов), в конкретном возрасте получил такой- то пользователь. Эти данные будут наноситься на график и отображать динамику изменений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2016, 15:31
|
|||
|---|---|---|---|
Помогите с нормализацией следующей схемы. |
|||
|
#18+
dimon-hackerБудет ли такая схема нормальной и в какой форме, или следует как-то отделить атрибут возраст?Мгновенное значение свойства "текущий возраст" экземпляра сущности "пользователь" являентся значимым атрибутом экземпляра сущности "ответ". Схема - нормальная. dimon-hackerна вопросы можно отвечать повторно, если в прошлом баллы не были набраны, а возраст стал больше предыдущегоПредставленная схема не позволяет проводить такой тип контроля непротиворечивости данных. Для поддержания целостности данных необходим уникальный индекс из 3 полей (user,question,vozrast) для исключения повторного ответа при том же возрасте вне зависимости от ответа. Полное же исключение ответа после того, как ответом были набраны баллы, вне зависимости от возраста, в MySQL без переопределения данных или дополнительной расчётной над-логики нереализуем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2016, 15:32
|
|||
|---|---|---|---|
|
|||
Помогите с нормализацией следующей схемы. |
|||
|
#18+
dimon-hackerБудет ли такая схема нормальной и в какой форме? Я имею ввиду правила нормализации БД с первой по 6 форму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2016, 15:36
|
|||
|---|---|---|---|
|
|||
Помогите с нормализацией следующей схемы. |
|||
|
#18+
Представленная схема не позволяет проводить такой тип контроля непротиворечивости данных. Для поддержания целостности данных необходим уникальный индекс из 3 полей (user,question,vozrast) для исключения повторного ответа при том же возрасте вне зависимости от ответа. Полное же исключение ответа после того, как ответом были набраны баллы, вне зависимости от возраста, в MySQL без переопределения данных или дополнительной расчётной над-логики нереализуем. Этот контроль осуществляется внешним приложением использующим данную БД. Думайте стоит решить этот вопрос средствами СУБД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2016, 15:38
|
|||
|---|---|---|---|
Помогите с нормализацией следующей схемы. |
|||
|
#18+
dimon-hackerконтроль осуществляется внешним приложением использующим данную БД. Думайте стоит решить этот вопрос средствами СУБД? Я не верю внешним приложениям. Если средства СУБД позволяют накосячить в данных - это обязательно произойдёт. Вопрос лишь в том, насколько быстро, как часто, и сильно ли больно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2016, 15:53
|
|||
|---|---|---|---|
|
|||
Помогите с нормализацией следующей схемы. |
|||
|
#18+
Akina, Я так понял что данная команда alter table results add primary key (id, idQuestions,vozrast); Создает первичный ключ, состоящий из 3-х полей и исключает возможность повторения ответа на вопрос в текущем возрасте. Других изменений в схему не требуется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2016, 16:39
|
|||
|---|---|---|---|
Помогите с нормализацией следующей схемы. |
|||
|
#18+
Почему первичный? как раз в такой таблице я бы предложил синтетический первичный, а этот индекс просто UNIQUE. Да ещё с учётом запросной нагрузки над порядком полей в нём поколдовал бы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2016, 17:21
|
|||
|---|---|---|---|
|
|||
Помогите с нормализацией следующей схемы. |
|||
|
#18+
Akina, По вашим ответам вижу, что вы профессионал, боюсь на данном этапе мне пока сложно вас понять, но хочу поблагодарить вас и всех остальных, что помогаете! Остановлюсь пока на том, что есть. Создал уникальный ключ из 3 полей, тем самым запретив дублирование без изменения возраста. Разобрались с нормальностью, правда так и не понял какой она формы... Всем еще раз спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&mobile=1&tid=1831739]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
148ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 464ms |

| 0 / 0 |
