PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 3
IceCream Отправлено: 14 Июля, 2012 - 01:27:48 • Тема: Посоветуйте по для взаимодействия с клиентами • Форум: Программное обеспечение

Ответов: 2
Просмотров: 1279
Я веду ряд веб(php, python) проектов у ряда клиентов. Организую работу силами гугл сервисов. Но честно говоря не слишком удобно. Хотелось бы както организовать постановку задачь со стороны клиентов, слежение за своими текущими задачами и сроками их исполнения.
В идеале хотелось бы иметь возможность добавлять других разработчиков и дизайнеров, которым я иногда делегирую некоторые задачи.
Прошёлся по основным системам управления проектами типа web2project и redmine. Всё слишком громоздко и рассчитанно на работу целой компании компании а не слежением за своей работой отдельного фрилансера.
IceCream Отправлено: 26 Января, 2010 - 23:13:56 • Тема: Проблема выборки данных • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 29
DarkWay666 пишет:
я непойму зачем пристыковка? Однако
p.products_id
p2pef.products_extra_fields_id
p2pef.products_extra_fields_value


Просто в расширенной форме запроса используется порядка 6ти имён таблиц поэтому это нужно чтобы не писать кучу имён таблиц полностью.

ведь согласитесь, куда удобнее написать
p2pef.products_extra_fields_value
чем
products_to_products_extra_fields.products_extra_fields_value

Собственно вопрос решил так:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT DISTINCT products_id
  3.                FROM products_to_products_extra_fields
  4.                WHERE (products_extra_fields_id = 'вес' AND products_extra_fields_value = '32')
  5. AND products_id = ANY
  6.                   (SELECT products_id
  7.                      FROM products_to_products_extra_fields
  8.                      WHERE (products_extra_fields_id = 'цвет' AND products_extra_fields_value = 'белый') ))
  9.  


так я получил все уникальные ID товаров у которых есть необходимы параметры с необходимыми значениями.
При условии что все связки параметр => значение я получаю динамически из GET строки, получился довольно удобный механизм разделения запроса на 2 части. в первой я предварительно сверив что такие параметры действительно соответствуют параметров товаров в данной категории провёл выборку ID товаров. И сразу определил есть ли такие товары вообще.
во второй, если такие товары есть выполняю выборку из 4х таблиц в базе все параметры необходимые вывести клиенту. Собственно этот запрос довольно громоздкий и первым запросом я снижаю нагрузку, хотя объединить его с этим не столь сложно.

Хотя вполне возможно есть более правильное решение данной задачи. Собственно чтобы узнать это я и создал данный топик.
IceCream Отправлено: 25 Января, 2010 - 21:17:18 • Тема: Проблема выборки данных • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 29
Проблема выборки.
есть база данных с такими таблицами(указываю упрощённо, потому что таблиц больше но проблемная ситуация только в одной):

products - тут лежат все продукты с их числовыми параметрами
у неё есть колонки products_id products_model
products_to_products_extra_field s тут мы указываем какое доп. свойство есть у продукта и какое у него значение(а у доп свойства может быть множество, например: доп свойство размер, значения доп свойства размер - 41 и 42)
Вид:
products_id(id продукта) products_extra_fields_id('id доп. свойства) products_extra_fields_value(значение1 доп. свойства)
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. '1' 'цвет' 'белый'
  3. '1' 'цвет' 'синий'
  4.  
  5. '1' 'вес' '32'
  6. '1' 'вес' '44'
  7.  
  8. '2' 'цвет' 'белый'
  9. '2' 'цвет' 'синий'


теперь задача выбрать все products_id и products_model в таблице products
у которых products_extra_fields_id и products_extra_fields_value
равны 'цвет' и 'белый' а также 'вес' и '32'

формирую запрос:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT p.products_id,
  2. p.products_model,
  3. FROM products_to_products_extra_fields p2pef,  products p
  4. WHERE p.products_id = p2pef.products_id
  5. AND (p2pef.products_extra_fields_id = 'цвет' AND p2pef.products_extra_fields_value = 'белый')
  6. AND (p2pef.products_extra_fields_id = 'вес' AND p2pef.products_extra_fields_value = '32')


так возвращает 0

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT p.products_id,
  2. p.products_model,
  3. FROM products_to_products_extra_fields p2pef,  products p
  4. WHERE p.products_id = p2pef.products_id
  5. AND (p2pef.products_extra_fields_id = 'цвет' AND p2pef.products_extra_fields_value = 'белый')
  6. OR (p2pef.products_extra_fields_id = 'вес' AND p2pef.products_extra_fields_value = '32')


так выводит и те в которых p2pef.products_extra_fields_id = 'цвет' and p2pef.products_extra_fields_valu e = 'белый', и те в которых p2pef.products_extra_fields_id = 'вес' and p2pef.products_extra_fields_valu e = '32'

Причём один и тот же товар выводит то количество раз, которое соответствует количеству доп. свойств у него тобиш колличеству его products_id в таблице p2pef. Но тут всё понятно, это породило условие p.products_id = p2pef.products_id и решил я эту проблему использовав select distinct, но это только решило проблему дубликатов.

В общем мне кажется что я не правильно логически построил запрос, только вот как сделать это верно?

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB