Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> База данных интернет магазина 
:(
    Опции темы
zzdxw
  Дата 8.11.2017, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 6.10.2014

Репутация: нет
Всего: нет



Всем привет! Помогите новичку с БД.
Дали задание спроектировать БД интернет-магазина с 5 таблицами.
Вроде бы элементарное задание, но я никак не могу определиться с сущностями и связями (то есть с самой сутью).
Для создания и редактирования БД использую консоль mySQL.

Моя примерная схема базы данных:

Таблица Товары: ID товара (PRIMARY), наименование, цена.
Таблица Юзеры: ID юзера (PRIMARY), ФИО юзера.
Таблица Комменты: ID коммента (PRIMARY), ID товара, коммент.
Таблица Покупки: ID покупки (PRIMARY), ID корзины.
Таблица Корзина: ID корзины (PRIMARY), ID товара, ID юзера.

Достаточно ли этого? Правильно ли построена архитектура (если можно так выразиться)?
PM MAIL   Вверх
Akina
Дата 9.11.2017, 07:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 453



Цитата(zzdxw @  8.11.2017,  23:44 Найти цитируемый пост)
Правильно ли построена архитектура (если можно так выразиться)? 

Нет.

Цитата(zzdxw @  8.11.2017,  23:44 Найти цитируемый пост)
не могу определиться с сущностями и связями (то есть с самой сутью).

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

Это сообщение отредактировал(а) Akina - 9.11.2017, 07:46


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
zzdxw
Дата 9.11.2017, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 6.10.2014

Репутация: нет
Всего: нет



Цитата

Теперь определяйтесь с атрибутами, связями и процессами.


Код

CREATE TABLE goods (
goods_id INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
name_of_goods VARCHAR (255) NOT NULL,
price_ru DECIMAL NOT NULL);

CREATE TABLE users (
user_id INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
username VARCHAR(50) NOT NULL);

CREATE TABLE comments (
comment_id INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
goods_id INT NOT NULL,
user_id INT NOT NULL,
comment VARCHAR(255) NOT NULL);

CREATE TABLE purchases (
purchase_id INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
user_id INT NOT NULL,
goods_id INT NOT NULL,
purchase_date DATE NOT NULL);

CREATE TABLE cart (
cart_number INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
user_id INT NOT NULL);



Подскажите, правильно ли я всё сделал?


Это сообщение отредактировал(а) zzdxw - 9.11.2017, 13:39
PM MAIL   Вверх
Snowy
Дата 9.11.2017, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 1
Всего: 484



Таблица Прайслист: ID позиции (PRIMARY), категория, наименование, цена, статус (на складе, в продаже, закрыта)
Таблица Юзеры: ID юзера (PRIMARY), ФИО юзера, email, phone, адрес для доставки, логин, пароль, статус (регистрация, подтверждён, бан), ...
Таблица Комменты: ID коммента (PRIMARY), ID товара, коммент.
Таблица Заказ: ID (PRIMARY), ID юзера, статус (оформляется/корзина, сформирован, оплачен, аннулирован), дата создания, дата закрытия, способ оплаты, доставка
Таблица Товар: ID (PRIMARY), ID позиции в прайслисте, ID заказа, цена на момент оформления заказа

Это структура для штучного товара. То есть торгуем готовыми изделиями, а не тоннами и кубометрами.
Без учёта документов: счетов, накладных, прочей бухгалтерии и налогов.

Прайслист: раздел бытовая техника, телевизор "Хрюндик". Цена 6000 единиц валюты. 
Товар в количестве 50 штук. 
Начинаем продавать. Продали 5 штук. Снизили цену до 5999. Продали ещё 28 штук и т.д...
PM MAIL   Вверх
Akina
Дата 9.11.2017, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 453



Ну вот опять... анализ где? ну или хотя бы объяснения, почему именно так, а не иначе?
Даже навскидку - схема не предусматривает половины бизнес-процессов. Snowy хорошо показал на один из них - изменение цены товара. Обычная практика в магазине... Что делать-то будешь? менять в таблице товара цену? так готовые невыкупленные заказы поплывут...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
zzdxw
Дата 9.11.2017, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 6.10.2014

Репутация: нет
Всего: нет



Цитата

Прайслист: раздел бытовая техника, телевизор "Хрюндик". Цена 6000 единиц валюты. 
Товар в количестве 50 штук. 
Начинаем продавать. Продали 5 штук. Снизили цену до 5999. Продали ещё 28 штук и т.д... 

Цитата

схема не предусматривает половины бизнес-процессов


Ребят, спасибо, но вы очень глубоко копаете. 
Это обычное задание по БД. Спроектировать БД для инет магазина с 5 таблицами (товары, юзеры, комменты к товарам, покупки, корзина). Как, например, задания по составлению БД студент-группа-факультет и т.п. 
Я сделал эти сущности и добавил атрибуты. 
И вот спрашиваю, верно ли я составил БД, атрибуты, связи? Если нет, подскажите как нужно?
Еще раз спасибо.
PM MAIL   Вверх
igorold
Дата 9.11.2017, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: 5
Всего: 17



Цитата(Snowy @  9.11.2017,  13:39 Найти цитируемый пост)
Таблица Комменты: ID коммента (PRIMARY), ID товара, коммент.


Я бы добавил ИД юзера - кто собственно комментировал ... дату ... м.б. оценку, поставленнуя товару ... 

Цитата(zzdxw @  8.11.2017,  22:44 Найти цитируемый пост)
Таблица Корзина: ID корзины (PRIMARY), ID товара, ID юзера.


Скорее корзина должна быть без ИД товара, а вот записи о товаре, которые кидают в корзину, должны иметь уже ИД корзины, ИД товара, Цену и Количество.


Вот навскидку по 2-м таблицам ... т.е. схема написана дилетантом, который не хочет думать ... 


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
zzdxw
Дата 9.11.2017, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 6.10.2014

Репутация: нет
Всего: нет



igorold, я во втором своем сообщении написал код mySQL данной бд. Там таблица "комментарии" уже с ID юзера, в таблице "корзина" нет ID товара. 

Цитата
 вот записи о товаре, которые кидают в корзину, должны иметь уже ИД корзины, ИД товара, Цену и Количество

Если про таблицу "товары", то там есть атрибуты ID товара (goods_id), наименование (name_of_goods) и цена (price_ru). То есть туда надо добавить атрибут ID корзины (cart_number) и создать новый "Количество"?
Цитата
схема написана дилетантом

Новичком.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.1525 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.