2013-02-25 5 views
0

У меня есть две таблицы: Student и Shop, и я хотел бы записать информацию о том, какой студент посетил который магазин и если число посещений превышает n, они должны получили скидку:таблица со всеми атрибутами создания первичного ключа

Это, как я это сделал:

enter image description here

Все атрибуты (studentID, shopID, time, date) в таблице StudentShop делает первичный ключ для этой таблицы. Я просто хотел знать, хорош ли этот дизайн?

ответ

1

Как соотношение между entieties StudentShop является многие ко многим отношений, она всегда реализуется с использованием ассоциативную таблицу (состоит из первичных ключей от обоих отношений), так StudentShop таблица - это хороший выбор для реализации такого отношения.

+0

Спасибо. Один вопрос: у меня есть атрибут в Student, называемый 'discount', который вычисляется с использованием отношения' StudentShop'. Должен ли я включиться в Студент или его можно рассчитать с помощью запроса? – Sam

+0

Скидка может быть обновлена, так как количество магазинов, посещаемых студентом, увеличивается. Если вы включите его в ученика, вы должны рассмотреть возможность обновления строк для поддержания фактического состояния данных каждого ученика, если вы используете запрос для его расчета, вам не нужно отслеживать, нужно ли обновлять данные студентов - вы всегда получать достоверные данные для каждого учащегося –

Смежные вопросы