Wahtel
15.12.2014 - 21:11
Всем привет, задали написать небольшой магазин, в котором страница для входа-регистрации, в главном меню просто пункты для добавления-редактирования-удаления товаров, для просмотра всех товаров, для просмотра только своих товаров, и для вывода товаров какого то определенного юзера, и вот в чем мои вопрос, лучше сделать одну таблтцу, в которой будет имя, логин, пароль, имейл, и его товары?
Изначально думал создать две таблицы в БД, с данными юзера и с его товарами, но как тогда выводить товары какого то определенного юзера, это надо по идеи делать через JOIN, а я в этом не очень силен, плюс задали написать как можно проще это задание.
Так что 2 таблицы.
Wahtel
15.12.2014 - 21:17
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
15.12.2014 - 22:12
users
u_id
u_name
products
p_id
p_name
users_products
u_id
p_id
p_count // опционально
Проще некуда.
Цитата |
это надо по идеи делать через JOIN, а я в этом не очень силен |
JOIN нужно выучить сразу, после того, как постиг SELECT, это базовые основы
_____________
[продано копирайтерам]
Цитата (Wahtel @ 15.12.2014 - 20:11) |
Всем привет, задали написать небольшой магазин, в котором страница для входа-регистрации, в главном меню просто пункты для добавления-редактирования-удаления товаров, для просмотра всех товаров, для просмотра только своих товаров, и для вывода товаров какого то определенного юзера, и вот в чем мои вопрос, лучше сделать одну таблтцу, в которой будет имя, логин, пароль, имейл, и его товары? Изначально думал создать две таблицы в БД, с данными юзера и с его товарами, но как тогда выводить товары какого то определенного юзера, это надо по идеи делать через JOIN, а я в этом не очень силен, плюс задали написать как можно проще это задание. |
По хорошему для юзера надо минимум три таблицы: 1. айди юзер, майл, пр. 2. Name, Second Name etc. 3. Delivery info (country, state, building etc).
Потом еще надо таблицу Корзина и еще 2 таблицы: группы товаров и товары.
Это по минимуму.
В Джоин ничего сложного, а если до сиз не понял - сейчас самое время понять!
AllesKlar
16.12.2014 - 01:42
mvg
Цитата |
1. айди юзер, майл, пр. 2. Name, Second Name etc |
В чем смысл 2х таблиц? У юзера может быть более одного Name, Secondname etc?
_____________
[продано копирайтерам]
Wahtel
16.12.2014 - 15:12
AllesKlar
А для чего p_count?
AllesKlar
16.12.2014 - 15:59
Цитата (Wahtel @ 16.12.2014 - 15:12) |
AllesKlar А для чего p_count? |
Я написал, что опционально.
Ну, а вообще, есть товар - картошка. единица измерения - метры.
Ты хочешь 1 метр картошки, а я 3 метра.
Вот в таблицу users_products и пишем
твой_id | картошка_id | 1
мой_id | картошка_id | 3
_____________
[продано копирайтерам]
Wahtel
16.12.2014 - 16:13
AllesKlar
Ясно, еще один вопрос, в третий таблице u_id и p_id оба auto_increment primary key?
AllesKlar
16.12.2014 - 16:16
нет, только primary key, никаких автоинкриментов, причем primary key - составной ключ из двух полей. Если это сложно для тебя, то просто каждому полю обычный индекс поставь.
Ты же ручкими должен записать, какому юзер_ид в пару поставить какой продукт_ид
_____________
[продано копирайтерам]
Wahtel
16.12.2014 - 16:28
AllesKlar
Ясно спасибо, просто задание слегка не понятно,
Необходима предоставить посетителям возможность:
1. Зарегистрироваться. (при регистрации отправка письма на почту)
2. Залогиниться (войти)
3. Просмотреть список всех товаров.
4. Просмотреть список товаров определенного пользователя
Для зарегистрированных
5. Возможность добавлять/редактировать/удалять свои товары
6. Возможность перехода в свой "личный кабинет" (см. пункт 4) из главного меню
4. Просмотреть список товаров определенного пользователя
Для зарегистрированных
5. Возможность добавлять/редактировать/удалять свои товары, это получается одна из страниц должна выводит товары именно того юзера под чьим логином я зашел, и именно это получается и надо сделать через JOIN верно?
AllesKlar
16.12.2014 - 16:33
Да, с этого и надо было начать.
Что значит "свои товары"?
_____________
[продано копирайтерам]
Wahtel
16.12.2014 - 16:36
AllesKlar
Ну вот я сам не совсем понимаю, что значит свои товары, я это понял так, что есть страница где выводятся все товары, а есть страница где выводятся товары юзера под которым я зашел, но вот не пойму как это реализовать.
Но в таком случае, ты когда добавляешь товары, оно должно в БД созранять логин юзера который это добавил.
AllesKlar
16.12.2014 - 16:49
Прежде чем что-то моделировать, нужно четко понять задачу.
Я так понимаю, что юзеры - э то не покупатели, это продавцы.
Они добавляют товары / удаляют / редактируют товары.
Тогда в таблице 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_КОНКРЕТНОГО_ЮЗЕРА
_____________
[продано копирайтерам]
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.