
PHP
Построение связей в таблицах БД
Подскажите, верно ли сделана связь между БД из 4 таблиц

Связи - да, правильно. Но вот всё остальное...
Какой смысл в таблице parts? Если это таблица товаров, то называться она должна совсем иначе. И не должно быть поля partname в orderdetails.
varchar(45) для e-mail и password - глупость. e-mail может быть намного длиннее, а пароль в БД хранится в виде хэша, который гарантировано длиннее.
Почему price в parts double, а totalprice в orderdetails - float?
Почему number - int? В магазине не продают развесной товар?
Какой смысл в таблице parts? Если это таблица товаров, то называться она должна совсем иначе. И не должно быть поля partname в orderdetails.
varchar(45) для e-mail и password - глупость. e-mail может быть намного длиннее, а пароль в БД хранится в виде хэша, который гарантировано длиннее.
Почему price в parts double, а totalprice в orderdetails - float?
Почему number - int? В магазине не продают развесной товар?
да сойдет связь сама по себе верная но если б ты их назвал так как принято в нормальных базах то тогда бы мне не пришлось вывихивать мозг чтобы разобрать что где. ключи не указаны, индексы тоже. totalptice в таблице связей не нужен , вернее нужен но он должен быть вычисляемым полем из позиций в заказе т к заколебешься обновлять во время изменения самих позиций ), inventory вобще хз что это, partname должно быть в таблице parts
А как нам узнать, правильно ли сделана связь, если тут типы связи не указаны? Ну ок, предположим, user-orders one-to-many, orders-orderDetails one-to-one, а что со связью orderDetails - parts? один заказ может содержать много позиций или только одну? Если много, то в таблице parts нужен foreign key на order.order_id, при этом orderDetails не должен иметь поля связанные с parts. Не знаю, насколько есть смысл вообще разделять order и order_details, если эта инфа будет использоваться часто, таблицы будут джойниться, запросы выполняться медленнее. Есть смысл, если эта инфа используется прямо супер-редко, в этом случае разделение оправдано.
А вообще, беру свои слова назад, order-parts (если parts это товар) должна быть many-to-many, т.к. один товар может быть заказан в разных заказах и в заказе может быть много товаров.
Соответственно в parts еще стоит добавить количество товара, чтобы пользователь не мог заказать больше, чем есть в наличии.
Если хочется солидности, то можно еще накрутить возможность изменения цены товара, типа пользователь сделал заказ, но цена на товар изменилась, при этом пользователь должен получить товар по той цене, по которой он заказал, и цена его заказа не должна измениться. Но новый заказ уже должен быть по новой цене.
А вообще, беру свои слова назад, order-parts (если parts это товар) должна быть many-to-many, т.к. один товар может быть заказан в разных заказах и в заказе может быть много товаров.
Соответственно в parts еще стоит добавить количество товара, чтобы пользователь не мог заказать больше, чем есть в наличии.
Если хочется солидности, то можно еще накрутить возможность изменения цены товара, типа пользователь сделал заказ, но цена на товар изменилась, при этом пользователь должен получить товар по той цене, по которой он заказал, и цена его заказа не должна измениться. Но новый заказ уже должен быть по новой цене.
а зачем ты разделил таблицу заказов на две таблицы?
Фаррух Толибов
Думаю,для большей наглядности,объема, это для учебы
Фаррух Толибов
Что по связям?
Фаррух Толибов
Тут есть пользователь,заказ,товар
Фаррух Толибов
как сделать по этой схеме ,нчего не меняя?
Фаррух Толибов
это преддипломная работа
Похожие вопросы
- Подключение несколько БД через require
- Как выполнить запрос в бд на php ооп
- PHP и MySQL - что лучше - сделать в таблице меньше полей, но длиннее запрос или больше полей и короче запрос?
- Как проще, лучше и быстрее из бд получить данные и поместить сразу в переменную или поместить в цикл и оттуда извлекать
- Помогите найти в бд цифру которая находится в переменной php
- Задача: Web-интерфейс БД зарегистрированных пользователей сайта
- Как котировки металлов Сбербанка вставить в ячейку таблицы Excel?
- Как хранить информацию о пользователях в бд?
- Не получается отправлять данные с формы в бд, не знаю в чем проблема, уже все перепробовал
- Откуда при выводе строк из БД появляются дубликаты? Строки два раза выводятся + скрин