[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Структура БД
Страницы: 1, 2, 3
Wahtel
Всем привет, задали написать небольшой магазин, в котором страница для входа-регистрации, в главном меню просто пункты для добавления-редактирования-удаления товаров, для просмотра всех товаров, для просмотра только своих товаров, и для вывода товаров какого то определенного юзера, и вот в чем мои вопрос, лучше сделать одну таблтцу, в которой будет имя, логин, пароль, имейл, и его товары?
Изначально думал создать две таблицы в БД, с данными юзера и с его товарами, но как тогда выводить товары какого то определенного юзера, это надо по идеи делать через JOIN, а я в этом не очень силен, плюс задали написать как можно проще это задание.
F**k
user posted image

Так что 2 таблицы.
Wahtel
F**k
А как тогда выводить все товары залогиненого юзера например?
F**k
SELECT products.*, users.* 
FROM products
LEFT JOIN users ON products.user_id=users.id
WHERE users.id = $auth_user_id

http://sqlfiddle.com/#!2/ebb97/1

В идеале наверное должно быть даже 3 таблицы: пользователи, товары, сязь пользователи X товары. Но в общем-то можно и с одной. Все зависит от деталей.
AllesKlar
users
u_id
u_name

products
p_id
p_name

users_products

u_id
p_id
p_count // опционально

Проще некуда.

Цитата
это надо по идеи делать через JOIN, а я в этом не очень силен

JOIN нужно выучить сразу, после того, как постиг SELECT, это базовые основы

_____________
[продано копирайтерам]
mvg
Цитата (Wahtel @ 15.12.2014 - 20:11)
Всем привет, задали написать небольшой магазин, в котором страница для входа-регистрации, в главном меню просто пункты для добавления-редактирования-удаления товаров, для просмотра всех товаров, для просмотра только своих товаров, и для вывода товаров какого то определенного юзера, и вот в чем мои вопрос, лучше сделать одну таблтцу, в которой будет имя, логин, пароль, имейл, и его товары?
Изначально думал создать две таблицы в БД, с данными юзера и с его товарами, но как тогда выводить товары какого то определенного юзера, это надо по идеи делать через JOIN, а я в этом не очень силен, плюс задали написать как можно проще это задание.

По хорошему для юзера надо минимум три таблицы: 1. айди юзер, майл, пр. 2. Name, Second Name etc. 3. Delivery info (country, state, building etc).

Потом еще надо таблицу Корзина и еще 2 таблицы: группы товаров и товары.

Это по минимуму.

В Джоин ничего сложного, а если до сиз не понял - сейчас самое время понять!
AllesKlar
mvg
Цитата
1. айди юзер, майл, пр. 2. Name, Second Name etc

В чем смысл 2х таблиц? У юзера может быть более одного Name, Secondname etc?

_____________
[продано копирайтерам]
Wahtel
AllesKlar
А для чего p_count?
AllesKlar
Цитата (Wahtel @ 16.12.2014 - 15:12)
AllesKlar
А для чего p_count?

Я написал, что опционально.
Ну, а вообще, есть товар - картошка. единица измерения - метры.
Ты хочешь 1 метр картошки, а я 3 метра.
Вот в таблицу users_products и пишем
твой_id | картошка_id | 1
мой_id | картошка_id | 3

_____________
[продано копирайтерам]
Wahtel
AllesKlar
Ясно, еще один вопрос, в третий таблице u_id и p_id оба auto_increment primary key?
AllesKlar
нет, только primary key, никаких автоинкриментов, причем primary key - составной ключ из двух полей. Если это сложно для тебя, то просто каждому полю обычный индекс поставь.
Ты же ручкими должен записать, какому юзер_ид в пару поставить какой продукт_ид

_____________
[продано копирайтерам]
Wahtel
AllesKlar
Ясно спасибо, просто задание слегка не понятно,

Необходима предоставить посетителям возможность:
1. Зарегистрироваться. (при регистрации отправка письма на почту)
2. Залогиниться (войти)
3. Просмотреть список всех товаров.
4. Просмотреть список товаров определенного пользователя
Для зарегистрированных
5. Возможность добавлять/редактировать/удалять свои товары
6. Возможность перехода в свой "личный кабинет" (см. пункт 4) из главного меню


4. Просмотреть список товаров определенного пользователя
Для зарегистрированных
5. Возможность добавлять/редактировать/удалять свои товары, это получается одна из страниц должна выводит товары именно того юзера под чьим логином я зашел, и именно это получается и надо сделать через JOIN верно?
AllesKlar
Да, с этого и надо было начать.
Что значит "свои товары"?

_____________
[продано копирайтерам]
Wahtel
AllesKlar
Ну вот я сам не совсем понимаю, что значит свои товары, я это понял так, что есть страница где выводятся все товары, а есть страница где выводятся товары юзера под которым я зашел, но вот не пойму как это реализовать.
Но в таком случае, ты когда добавляешь товары, оно должно в БД созранять логин юзера который это добавил.
AllesKlar
Прежде чем что-то моделировать, нужно четко понять задачу.

Я так понимаю, что юзеры - э то не покупатели, это продавцы.
Они добавляют товары / удаляют / редактируют товары.

Тогда в таблице users_products поле p_count не нужно.

Выбрать товары определенного юзера, в том числе собственные:
SELECT * FROM products LEFT JOIN users_products ON products.p_id = users_products.p_id
WHERE users_products.u_id = ID_КОНКРЕТНОГО_ЮЗЕРА


_____________
[продано копирайтерам]
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.