[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как сделать поиск товаров по полю kod и optkod
Страницы: 1, 2, 3, 4, 5, 6, 7
RussianDesigner
нет. после того как появился склад, аналоги уже это другое понятие
теперь схема такая:
теперь под аналогами подразумеваются товары магазинные
есть колонки kod и optkod
товар на складе это как бы отправная точка
т.к. товар сначала попадает на склад
т.о. optkod товар имеет всегда
а вот, если товар попадает в магазин, то тогда ему присваивается и kod
kod товар получает только в том случае, если подразумевается его поставка с магазина.

т.о. после поступления в магазин товара получается взаимосвязь
товар в магазине и товар на складе.
товар в магазине имеет уникальный код, а тот же складской имеет уникальный номер только тогда, когда он лишь на одном складе, когда он и на втором складе, то он получаен номер (optkod) второго склада. т.о складские номера (optkod) это неуникальная позиция, а уникальным является только kod
т.к. одному kodу всегда соответствует только один конкретный товар
(но как описывалось выше оптовых кодов у него может быть несколько)

теперь про аналоги:
аналог нужен только для товаров для магазина, т.е. аналоги будут только у позиции kod
в данном случае, аналогом будет товар заменитель,- товар под другим kodом, но у которого совпадают оптовые коды.
это хорошо видно по изнальной ненормализированной таблице
лучше на примере картошки

user posted image


смотря на приведенную таблицу видно,
что несмотря на разные названия
у id1 и id3 и id37 и id55 т.е. у картошки "обычной" и у "запасной" "сельской" "городской"
есть совпадение по полю optkod

это значит, что не смотря на разные названия, картошку обычную можно заменить любой из этих четырех вышеуказанных
например у обычной и у запасной полное совпадение по складским номерам
(возможно это даже одна и таже картошка на складе).
Или
взять две другие картошки с совпадением:
так у картошки "городской" в поле optkod значится opt1k6/opt1k1/opt2k01
а у картошки "обычной" opt1k1/opt2k01
отсюда видно, что
картошка обычная отгружается с первого и со второго склада как opt1k1 и opt2k01
а городская ещё и с первого склада под optkodoм opt1k6
в данном случае, у обычной и городской есть общие optkodы opt1k1 и opt2k01 хотя достаточно было бы одного из них чтобы сказать что совпадение присутствует

значит так как они совпадают по опт коду значит они и являются аналогами, хотя называются по разному
Valick
Цитата
это хорошо видно по изнальной ненормализированной таблице

поверьте на слово, всё через жопу
код товара по хорошему должен быть един, что в магазине, что на складах
и должно быть поле наличие товара, либо просто флаг, либо сразу количество.
И он скорее всего если отбрасывать opt1 и opt2 одинаковый (например в яблоках yab4 - opt1yab4), но с картошкой какая-то беда k1 и opt1k01
не удивительно что у вас ничего не получается, вы мыслите картошкой и огурцами, а надо мыслить сущностями абстагируясь от конкретных данных.


_____________
Стимулятор ~yoomoney - 41001303250491
RussianDesigner
Цитата
код товара по хорошему должен быть един, что в магазине, что на складах

нужна именно такая конструкция как описано
это уже продумано

Цитата
и должно быть поле наличие товара, либо просто флаг, либо сразу количество.

да.
поле количество добавлю позже
(оно не решающее, поэтому для простоты пока отсутствует)

Цитата
k1 и opt1k01

opt1k01 такого у меня нет

01 может быть только у товара со второго склада
т.к. ноль подставляется только для второго склада

для лучшего понимания:
товар в магазине имеет код
например картошка обычная имеет код k1
значит на первом складе она будет числиться как opt1k1,
а на втором opt2k01
поэтому я и говорю, что у меня нет такого кода как вы написали
opt1k01 в принципе и быть такого не может
RussianDesigner
т.е. opt1k1 первый склад
opt2k01 второй

k1 магазин smile.gif
Valick
Цитата
нужна именно такая конструкция как описано

взяли мы одинаковую картошку 10 кг из магазина и 10 кг со второго склада, сложили её в кучу
какой тепрь у неё код?

_____________
Стимулятор ~yoomoney - 41001303250491
RussianDesigner
если взять таблицу kodsfrom_tovaruallnorm
и упорядочить в ней по полю optkod,
то сразу видны аналоги
- товары у которых совпадают optkodы и есть аналоги
user posted image
RussianDesigner
Цитата (Valick @ 18.08.2014 - 14:22)
Цитата
нужна именно такая конструкция как описано

взяли мы одинаковую картошку 10 кг из магазина и 10 кг со второго склада, сложили её в кучу
какой тепрь у неё код?

после того как купили и сложили в кучу у картошки кода не будет
а до того она будет либо на складе, либо в магазине,
складывать всё в одну кучу такой надобности нет
(я понял, что вы имели ввиду, но даже практически это невозможно т.к. склад и магазин имеют расстояние, которое их разделяет)

и
оптовый покупатель знает оптовый код - optkod
а розничный, который покупает в магазине код магазиный - kod
при поиске через форму должен производиться поиск как по optkodу так и по kodу
RussianDesigner
Цитата (Valick @ 18.08.2014 - 12:58)

поверьте на слово, всё через жопу
код товара по хорошему должен быть един, что в магазине, что на складах


хотя, в принципе такая ситуация, как вы сказали про кучу возможна
но это уже следующий вопрос.
вся суть в том, что хоть вы и правы, что всё через жопу
но нужна именно такая структура

оно так и получится через жопу
что когда в станет вопрос количество товара на складе и в магазине в какую колонку записывать.
Но нужна именно такая структура, т.е., чтобы был оптовый код и магазинный
RussianDesigner
на данный момент есть две таблицы

user posted image



и


user posted image


не знаю каким полям проставлять взаимосвязи
Kusss
во второй таблице нет главного поля. Которое свяжет его с первой таблицей
RussianDesigner
Какое главное поле?

В этой статье ничего про главное поле не написано
http://folkprog.net/sozdanie-svyazey-phpmyadmin/

Там говориться надо выбрать в одной и другой таблице по полю, просто Пометить их как Индекс и
Связать через связи
Kusss
в статье таблицы связываются через part_id и id.
А что это в вашем варианте ?
RussianDesigner
вот я и думаю именно над этим
что это будет в моём варианте

думал part_id это kod или optkod
а id это и у меня тоже id

т.е. я именно над этим вопросом и думаю,
есть ли разница через какие поля делать взаимосвязь?
если есть кто с опытом, подскажите


а про главное поле там ничего не сказано
Kusss
"главное" - это я его так назвал. Потому что без него ни как smile.gif

В вашем примере не хватает product_id(назовите как угодно), в которой будет храниться номер (id) из первой таблицы.
И ещё по моему kod нужно вернуть в первую таблицу. Ведь он такой же уникальный должен быть для каждого товара ? И если да - сделать уникальным.(во избежании дубликатов).
optkod - изменить тип "text" на "varchar"
Kusss
И ещё бы вынести отдельно Категории. к которой привязать префикс кода.
id | tovar_name | prefix
1 | Картошка | k
2 | Огурец | o
3 | Помидор | p

И в таблице товаров nametovar - записывать id .
Это упростит добавление нового товара, Будет требовать меньше ресурсов при выводе каталога, ссылки проще сделать, выборка и т.п.
Быстрый ответ:

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