0

Я нахожусь в процессе создания веб-сайта и хотел бы посоветовать о моей схеме базы данных, так как у меня не так много опыта в этой области.Схема продажи продуктов MySQL

Скажем, у меня был сайт, на котором было продано 2 продукта, product1 и product2.

Когда пользователь покупает какой-либо продукт, он получает учетную запись пользователя с ключом для доступа к своей учетной записи. Пользователь может загрузить свой продукт со своей учетной записи. Затем пользователь может позже приобрести оставшийся продукт, а продукт будет добавлен в свою учетную запись, позволяя им загружать как product1, так и product2 с помощью ключа, предоставленного им при покупке первого продукта.

Информация об оплате (способ оплаты, идентификатор транзакции, отметка времени и т. Д.) Также будет сохранена.

я в настоящее время у меня схема планировалась как так:

enter image description here

Я чувствую, что так, как я делаю это не является оптимальным и есть лучшие способы организовать его. Есть рекомендации?

Надеется, что вы можете помочь и спасибо заранее :)

+1

Какое программное обеспечение для проектирования баз данных вы использовали для этой диаграммы? – dcolumbus

+0

http://ondras.zarovi.cz/sql/demo/ это то, что я использовал. –

+0

Ницца, спасибо человеку. Это выглядит великолепно! – dcolumbus

ответ

0

Это хорошая идея, чтобы начать идентифицировать объекты, ваша схема будет хранить. Похоже, что компоненты-кандидаты могут быть

  • пользователь
  • (пользовательские данные)
  • продукт
  • покупка

Эти объекты будут таблицы вы начинаете с. Добавьте соответствующие отношения.

Идентификация объектов в вашей схеме будет (надеюсь) держать вас от расширяющихся таблиц. Вы не хотите пересматривать всю схему, например, каждый раз, когда вы добавляете продукт. Точно так же вы не захотите каждый раз добавлять новую таблицу.

Как только вы определили их, начните размещать их в normal form. Обычно рекомендуется 3-я нормальная форма. Вы, скорее всего, найдете, как вы указали в своей схеме, есть много избыточных данных, которые попадают под объект покупки, который отделяет его от другой таблицы, для более удобной схемы.

Это устранит избыточные данные в ваших таблицах, которые впоследствии могут выпасть из синхронизации и помогут определить, где некоторые данные неуместны.

+0

Привет, спасибо за ответ. Я попытался улучшить свою схему, что вы думаете? http://i.imgur.com/SmXuJ.png –

+0

Это выглядит намного более удобным. Вы можете обнаружить, что вам вообще не нужны данные пользователя. –

+0

Благодарим вас за помощь, но у меня есть другие вопросы, которые я оставил с моего оригинального сообщения. Скажем, я хотел сохранить счет всех заказов, общую сумму, заплаченную за заказы и платформу, и я хотел отобразить эту информацию на веб-странице. Могу ли я создать другую таблицу «Статистика» и написать в эту таблицу также каждый раз, когда покупка будет завершена, или было бы лучше подсчитать количество заказов для платформы X и count() для платформы Y каждый раз, когда страница будет загружена?Я думаю, что, вероятно, лучше всего на +1 к платформе X в таблице статистики по каждому заказу. Спасибо –

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