|
|
|
Как правильно хранить данные
|
|||
|---|---|---|---|
|
#18+
Arhat109, упустил. Как определить что этот товар никогда не продавался? По артикулу. Он в моем прайсе выведен в отдельное поле - нафига? Это сквозная уникальная идентификация моего прайса. Если в проданном такого артикула нет - вставляем, есть игнорим. В мой прайс, мои артикулы добавляются уникально к проданному и уже имеющемуся... у меня просто велась отдельная табличка с одним полем и даже одним (последним) значением (было буквенно-цифровой автоинкремент: буквы - текущий год/месяц/неделя, и автоинкрементное число скока добавилось новых за эту неделю)... мало информативно, кто не знает как формируется. Мне по артикулу было понятно когда товар пришел и часто даже чей. Товар в "поставки" - добавляется если его там нет, обновляет поля цен и остатков (и чего ещё надо) если есть, удаляется если его нет в текущем полном прайсе, или остается, если пришли только изменения к старому... ... а теперь, скажите что произойдет в ваших таблицах при таком изменении названия товара ... а если артикулов поставщиков - нет? к примеру, сейчас на портале около 450тыс. позиций, с артикулом из них - хорошо если есть 1% ... тем не менее, распознаваемость "оно же" при обновлении прайса дает достаточно большой процент попаданий... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 00:30 |
|
||
|
Как правильно хранить данные
|
|||
|---|---|---|---|
|
#18+
ViPRosБредятина, могут на скрине ж видно - мигрирующие ссылки и мигрирующие свойства Очень хорошо. Два вопроса. 1) Для схемы A(Клиент)-->B(Накладная)-->C(Запись накладной)<--D(Товар) разрешается (и поддерживается впоследствии) "миграция" ссылки на D из C в A? 2) Причем здесь "алгебра схем"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 10:34 |
|
||
|
Как правильно хранить данные
|
|||
|---|---|---|---|
|
#18+
Извиняюсь, перепутал направление ("миграция" идет к C, разумеется) и забыл, что это, все-таки, ссылки (односторонние связи), а не связи. Так что первый вопрос снимается. Все нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 10:48 |
|
||
|
Как правильно хранить данные
|
|||
|---|---|---|---|
|
#18+
Arhat109Давайте разберем. Всё лучше чем читать глупости фантазеров. :) поправлю пример, чтобы было понятней: 1. Есть три поставщика, каждый со своей номенклатурой и артикулами товаров (никаких параметров никто не давал, это сейчас лохов заставляют в xml клепать... :) "А": "шапочка женская (фиолетовая), артикул А1" "Б": "фиолетовая шапочка, арт. Б2" "В": "шапка зеленая, артикул В1" (на самом деле она тоже фиолетовая, но мы пока ещё этого не знаем, так дали) Обработка: 1. Обработка прайсов (выделяем параметры, теперь это EAV называется, пусть будет "руками оператора") "товар::шапочка", "пол::женская","цвет::фиолетовая","артикул::А1","артикул::Б2","товар::шапка","цвет::зеленая","артикул::В1" других нет. 2. Собираем каталог товаров "поставки". Добавляем туда все строки прайсов: Запись1:: "отА", "шапочка женская (фиолетовая), артикул А1", ценаА1, остатокА1 Запись2:: "отБ", "фиолетовая шапочка, артикул Б2", ценаБ2, остатокБ2 Запись3:: "отВ", "шапка зеленая, артикул В1", ценаВ1, остатокВ1 3. Собираем "прайс-лист" (с учетом параметров строк): Запись1:: "шапочка женская (фиолетовая)", "артикул мой1", "мояЦена1", "остатокА1+остатокБ2" Запись2:: "шапка зеленая", "артикул мой2", "мояЦена2", "остатокВ1" Погодите, а откуда взялся "АртикулМой1"? Вы вроде говорили что берется артикул первого поставщика (то есть в данном случае A1)? Или нет? Arhat1094. Одновременно собирается таблица синонимов товаров поставщиков (оно же) на основе критерия "похожести": Запись1:: прайс1 = поставки1 Запись2:: прайс1 = поставки2 Запись3:: прайс2 = поставки3 ... Шапочка фиолетовая - "похожа" на товар поставщика А и поэтому "объявлена" синонимом (пусть тоже руками оператора, она её купила и носит) Всё. Часть работы "снабженца" кончилась. Часть2: пришел новый прайс от поставщика "В" (исправили ошибку - зеленых больше нет, но есть фиолетовая): в виде текста "шапка фиолетовая, артикул В1" (артикул тот же, так?) артикул-то конечно тот же - но вот название никто не менял :) Так оно и висит неправильное у поставщика полгода. И, поскольку таблица синонимов при очистке таблиц поставщиков тоже обнулилась (так ведь?) - то при каждой приемке прайса товароведу придется указывать "Артикул С1 поставщика C - синоним такого-то нашего товара". Это же ужасно :) Arhat109"проданныеПоставки" (тоже пустой, копируем, товар есть только у поставщика "В"!): Запись1:: "отВ", "шапка зеленая, артикул В1", ценаВ1, остатокВ1 синонимыПроданного" (тоже пусто - первая продажа...): Запись1:: "продано1" = "проданнаяПоставка1" Заказы (строки): Запись1:: "продан1", ... ЗаявкиПоставщикам: Запись1:: "проданная поставка1" ... и? Что было непонятно? Было (и остается) непонятно, как впоследствии Вы ту запись из "проданных товаров" про зеленую шапку свяжете в аналитическом отчете с фиолетовыми. Arhat109Что осталось непонятным? Объем данных в каждой части - оптимально минимален, а стало быть и скорость и размеры... не чета вашим историям. Про скорость мы уже вроде разобрались, нет? ;) Arhat109... статистические расчеты: тоже "не проблема"... если что-то смущает, то по параметру "артикул" - совместите самостоятельно, он в части EAV лежит (там ваще много чего лежит). Артикул - какой артикул? поставщика? Так значит, мы не свяжем в аналитике не только зеленую шапочку с фиолетовой, но и фиолетовую шапочку поставщика А с фиолетовой шапочкой поставщика B. Мы будем вообще не в курсе, действовала ли какая-то маркетинговая программа на этот товар (поскольку маркетинговая программа работает, разумеется, с товаром в нашем каталоге, а не с товаром поставщика). Это я и называл "Вся аналитика идет к черту". Arhat109Я же уже писал: "лох должен платить" Именно. В частности, тратя на прием прайса 4 часа времени квалифицированного спениалиста (который будет в процессе определять, является ли одна шапочка аналогом другой, а главное - будет потом отвечать за это) вместо 2 минут 50-летней тетушки складского работника, которой нужно уметь распаковать файл прайса и подсунуть его программе. У меня есть предложение - если Вы считаете эту свою систему образцом и т.п. - в следующий раз при поиске фриланса в "Работе" давайте ссылку на эту ветку. Будет такая реклама (гы-гы) "Вот какой я молодец и как клево и недорого решаю проблемы заказчика". А заказчик уж подумает, нужна ему такая клевость или ну его нафиг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 11:52 |
|
||
|
Как правильно хранить данные
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, Как всё запущено... перечитайте внимательно (система частично УЖЕ воспроизведена на потрале и работает ваще без артикулов поставщиков :). Как поведут себя Ваши таблицы - Вы решили тоже "замять для ясности, нет? Тут есть моё первое предложение для ТС, есть подробное пояснение ему что откуда и куда, есть даже описание работавшей системы и пример ... имеющий глаза - увидит. Остальным - похоже бесполезно. У меня каникулы - кончились. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 12:01 |
|
||
|
Как правильно хранить данные
|
|||
|---|---|---|---|
|
#18+
Arhat109, P.S. Всем огромное спасибо, давно так не веселился. С наступившим Новым Годом и успехов в работе! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 12:02 |
|
||
|
Как правильно хранить данные
|
|||
|---|---|---|---|
|
#18+
отжежйлпересете... креатиФФщики... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 12:02 |
|
||
|
Как правильно хранить данные
|
|||
|---|---|---|---|
|
#18+
Arhat109... а теперь, скажите что произойдет в ваших таблицах при таком изменении названия товара Изменения названия поставщика на работу системы вообще не повлияет никак. Если поставщику в заказе зачем-то нужно название - оно там будет, а внутри нашей организации - будет не заметно никак. Возможно, это обнаружат при приеме накладной на склад - но скорее всего нет. Штрих-код совпал, количество совпало - все, в графу "название" никто может и не заглянуть. Вы вон писали "у поставщика менялись 205 названий - достали, козлы". Я вот реально не знаю, сколько процентов позиций у поставщиков меняют названия. "Всем по(фиг)"(с) Лурк. Arhat109... ... а если артикулов поставщиков - нет? Если артикулов поставщиков нет - то с таким поставщиком лучше дел не иметь. И не потому что система не позволяет (системе пофиг, будет считать название уникальным артикулом), а потому что у него бардак в бизнес-процессах. Никогда Вы не сиожете быть уверены, что Вы получите именно то, что заказали, и именно тогда, когда заказали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 12:04 |
|
||
|
Как правильно хранить данные
|
|||
|---|---|---|---|
|
#18+
Рассмотрим возможность реализации "алгебры схем" с использованием "реляционной алгебры". [Это для разработчиков MS SQL, которые используют концепцию схемы для неких целей:)] Пусть у нас есть схема A и схема B. Пусть схема A может быть представлена денормализованным отношением A, а схема B может быть представлена денормализованным отношением B. Выполним алгебраическую операцию и получим отношение C. Всегда ли можно сказать какую именно схему представляет это отношение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 12:16 |
|
||
|
Как правильно хранить данные
|
|||
|---|---|---|---|
|
#18+
Arhat109Как поведут себя Ваши таблицы - Вы решили тоже "замять для ясности, нет? Нет. Есть таблица наших товаров. Оттуда никогда ничего не удаляется Есть таблица товаров поставщиков с ключом "Артикул, Поставщик" и ссылкой (0..1) на таблицу наших товаров. Тоже никогда ничего не удаляется - только добавляется и обновляется. Есть таблица элементов заказа - ссылка (1..1) на таблицу наших товаров. Т.е. у нас есть три записи в таблице товаров поставщиков и одна - в нашем каталоге. "зеленая шапочка" поставщика связана с "фиолетовой" нашей товароведом 1 раз , и исправит ли ошибку поставщик в прайсе или нет - нам все равно. При приемке в записях поставщиков меняются флаги "наличие"( + меняются еще какие-то поля, если они изменились у поставщика ). На основании этих флагов (и возможного остатка на складе) определяется, активен ли наш товар. На основании (возможно изменившихся) цен поставщиков и цен складских остатков - меняется цена нашего товара, делается запись в историю цен. поскольку наш товар не меняется в процессе - элементы заказов выглядят тоже однотипно, отличаясь лишь количеством и ценой. По элементам заказов формируем заказы к поставщикам, в системе это выглядит как заказ наших товаров (хотя поставщику мы, конечно, посылаем его коды и его названия - благо связь есть) и на склад принимеем тоже наши товары (в партии есть, конечно, ссылка на накладную, т.е. мы можем выяснить, чьи же товары лежат у нас на складе, но опять же это в норме никого не интересует). в результате этого комплектация происходит прозрачно независимо от того, у какого поставщика мы в итоге купили товар (Вы момент комплектации тоже обошли в описании). Опять же, поскольку все продажи товара идут под одним сквозным кодом - никаких проблем с аналитикой нет. Аенализируя движения склада, мы в принципе можем вычислить, сколько конкретно шапочек поставщика А мы продали под нашим брендом "Шапочка фиолетовая" (опять же, это мало кого волнует обычно - но система позволяет). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 12:54 |
|
||
|
Как правильно хранить данные
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин Есть таблица наших товаров. Оттуда никогда ничего не удаляется Есть таблица товаров поставщиков с ключом "Артикул, Поставщик" и ссылкой (0..1) на таблицу наших товаров. Тоже никогда ничего не удаляется - только добавляется и обновляется. Есть таблица элементов заказа - ссылка (1..1) на таблицу наших товаров. Т.е. у нас есть три записи в таблице товаров поставщиков и одна - в нашем каталоге. "зеленая шапочка" поставщика связана с "фиолетовой" нашей товароведом 1 раз , и исправит ли ошибку поставщик в прайсе или нет - нам все равно. При приемке в записях поставщиков меняются флаги "наличие"( + меняются еще какие-то поля, если они изменились у поставщика ). На основании этих флагов (и возможного остатка на складе) определяется, активен ли наш товар. На основании (возможно изменившихся) цен поставщиков и цен складских остатков - меняется цена нашего товара, делается запись в историю цен. поскольку наш товар не меняется в процессе - элементы заказов выглядят тоже однотипно, отличаясь лишь количеством и ценой. По элементам заказов формируем заказы к поставщикам, в системе это выглядит как заказ наших товаров (хотя поставщику мы, конечно, посылаем его коды и его названия - благо связь есть) Очевидно, что, формально, по разным причинам может быть несколько товаров конкретного поставщика, связанных с одним вашим товаром. Либо Вы это исключаете на уровне БД (создаете еще один ваш товар, в крайнем случае), либо применяете некий алгоритм заказа товара у поставщика, учитывающий такую ситуацию. Кот Матроскин и на склад принимеем тоже наши товары (в партии есть, конечно, ссылка на накладную, т.е. мы можем выяснить, чьи же товары лежат у нас на складе, но опять же это в норме никого не интересует). В "норме никого не интересует" не очень хороший аргумент:) Просто, фактически хранятся остатки товаров именно поставщиков, и хорошо. Кот Матроскин ...Опять же, поскольку все продажи товара идут под одним сквозным кодом - никаких проблем с аналитикой нет. Аенализируя движения склада, мы в принципе можем вычислить, сколько конкретно шапочек поставщика А мы продали под нашим брендом "Шапочка фиолетовая" (опять же, это мало кого волнует обычно - но система позволяет). Опять несколько неуверенно - "но система позволяет". В детализации отгрузки вашего товара просто есть (видимо) конкретные партии (то есть, фактически, конкретные товары поставщиков). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 13:50 |
|
||
|
Как правильно хранить данные
|
|||
|---|---|---|---|
|
#18+
БредятинаИзвиняюсь, перепутал направление ("миграция" идет к C, разумеется) и забыл, что это, все-таки, ссылки (односторонние связи), а не связи. Так что первый вопрос снимается. Все нормально. хе можно и обратно токо при этом надо использовать агрегатные функции но это уже не миграция, а вычисления по связям (вычислимые свойства - в которых можно сослаться на свойства объектов по нисходящим-восходящим связям) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 14:05 |
|
||
|
Как правильно хранить данные
|
|||
|---|---|---|---|
|
#18+
БредятинаРассмотрим возможность реализации "алгебры схем" с использованием "реляционной алгебры". [Это для разработчиков MS SQL, которые используют концепцию схемы для неких целей:)] Пусть у нас есть схема A и схема B. Пусть схема A может быть представлена денормализованным отношением A, а схема B может быть представлена денормализованным отношением B. Выполним алгебраическую операцию и получим отношение C. Всегда ли можно сказать какую именно схему представляет это отношение? нет получится вырожденная схема из одного отношения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 14:10 |
|
||
|
Как правильно хранить данные
|
|||
|---|---|---|---|
|
#18+
что бы узнать как формирован агрегат, надо хранить метод агрегации в агрегате (хотя даже это е дает гарантии восстановления схемы, если внутри метода есть агрегатные функции) а РА воще не знает что такое домен и потому даже из денормализованной до одного отнощения схемы нет возврата ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 14:20 |
|
||
|
Как правильно хранить данные
|
|||
|---|---|---|---|
|
#18+
БредятинаОчевидно, что, формально, по разным причинам может быть несколько (разных) товаров конкретного поставщика (разных поставщиков), связанных с одним вашим товаром. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 14:29 |
|
||
|
Как правильно хранить данные
|
|||
|---|---|---|---|
|
#18+
и обратно 1-товар их , много ваших вощем без спецификаций и языка конфигураций тут нифига не сделаешь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 14:31 |
|
||
|
Как правильно хранить данные
|
|||
|---|---|---|---|
|
#18+
что б начать "алгебру схем", надо определить "связи" межсхемные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 14:32 |
|
||
|
Как правильно хранить данные
|
|||
|---|---|---|---|
|
#18+
ViPвот если определим нормально, то я обобщу механизм связывания в ВИПРОС и тем самым убью ссылки :) двойная выгода получится а потом сделаем провайдер хоть к мамсу хоть в носкл да хоть куда при нужде ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 14:41 |
|
||
|
Как правильно хранить данные
|
|||
|---|---|---|---|
|
#18+
БредятинаОчевидно, что, формально, по разным причинам может быть несколько товаров конкретного поставщика, связанных с одним вашим товаром. Либо Вы это исключаете на уровне БД (создаете еще один ваш товар, в крайнем случае), либо применяете некий алгоритм заказа товара у поставщика, учитывающий такую ситуацию. Да, такое бывает. У меня это реализовано не при помощи привязки нескольких товаров поставщика к одному нашему, а при помощи механизма дубликатов - можно указать, что Товар1 есть дубликат товара2, а вот товар2 уже связан с нашим товаром. Хотя можно было бы и привязывая все и выставляя признак "заказывать этот", дело вкуса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 16:31 |
|
||
|
Как правильно хранить данные
|
|||
|---|---|---|---|
|
#18+
ViPRosБредятинаИзвиняюсь, перепутал направление ("миграция" идет к C, разумеется) и забыл, что это, все-таки, ссылки (односторонние связи), а не связи. Так что первый вопрос снимается. Все нормально. хе можно и обратно токо при этом надо использовать агрегатные функции но это уже не миграция, а вычисления по связям (вычислимые свойства - в которых можно сослаться на свойства объектов по нисходящим-восходящим связям) Проблему несимметричного доступа в моделях, наследованных от РМД, мы уже рассматривали. "Обратную" связь приходится вычислять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 17:00 |
|
||
|
Как правильно хранить данные
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинНет. Ещё один вменяемый участник трепа... приношу свои извинения, ошибся. Кот Матроскин Есть таблица наших товаров. Оттуда никогда ничего не удаляется то есть, "история" копится прямо в вашем прайсе (это же аналог моего прайса, так?) Если у меня в прайсе, в среднем болталось что-то около 40_000 позиций (комп. железо), с 30% еженедельным обновлением, то за три года работы системы накопилось бы = 52*3*40_000*0,3 +40_000 = около 2млн. позиций... из которых рабочих было бы по-прежнему 40тыс. КПД хранения 2%... Уже нравится. :) Кот Матроскин Есть таблица товаров поставщиков с ключом "Артикул, Поставщик" и ссылкой (0..1) на таблицу наших товаров. Тоже никогда ничего не удаляется - только добавляется и обновляется. ... то есть КПД хранения такое же, а с учетом того, что у меня было 10 поставщиков (правда меньшего размера), то объем тут вырастает раза в три... около 6млн записей. Это раз. Нравится ещё больше. :) ... у Вас принят "обратный" подход. Если у меня по таблице синонимов связка симметрична, то у Вас по товару поставщика можно найти ваш товар, а вот обратно - надо искать (хорошо что по внешней ссылке)... скорее минус чем плюс... ... как будет добавляться товар Поставщика БЕЗ артикула, если он входит в определение уникального ключа? Не въехал. Пояните плиз. Подозреваю - никак. То есть с поставщиками без артикулов работать или сложно (надо придумывать за них) или совсем невозможно. Если это так, то с представленной системой сравнивать просто нельзя. Нет функционала. Кот Матроскин Есть таблица элементов заказа - ссылка (1..1) на таблицу наших товаров. Т.е. у нас есть три записи в таблице товаров поставщиков и одна - в нашем каталоге. откуда три? В рамках примера - по одной на поставщика? А как же "зеленая шапка"? На этом этапе Ваш товаровед не в состоянии узнать, что это "тот же самый товар" что и от поставщика А или Б... или он прозванивает каждую новую позицию (надо же хлеб отрабатывать)? Кот Матроскин"зеленая шапочка" поставщика связана с "фиолетовой" нашей товароведом 1 раз , и исправит ли ошибку поставщик в прайсе или нет - нам все равно. перечитайте моё описание ещё раз внимательно. У меня не было снабженца, в смысле совсем не было. Как штатной единицы. Всю привязку "тот же самый" осуществлял полу-автомат. Самостоятельно (это те самые 10-15минут его работы, если он принимал решения сам на 3-5тыс. позиций... и без каких-либо артикулов и штрих-кодов (много их было в 97-2000гг, ага) Кот МатроскинПри приемке в записях поставщиков меняются флаги "наличие"( + меняются еще какие-то поля, если они изменились у поставщика ). На основании этих флагов (и возможного остатка на складе) определяется, активен ли наш товар. На основании (возможно изменившихся) цен поставщиков и цен складских остатков - меняется цена нашего товара, делается запись в историю цен. это понятно... склад он и есть склад... к вопросу отношения не имеет. Кот Матроскин... поскольку наш товар не меняется в процессе - элементы заказов выглядят тоже однотипно, отличаясь лишь количеством и ценой. ... тоже понятно. Фактически реализация "камасутры3"... все время ходим в историю... собственно в ней и живем (куда и как пухнет база - есть выше, не такие уже и "мелочи", скажем для того же третьего пня со 128метрами оперативки - если переносить в то время). Кот Матроскин По элементам заказов формируем заказы к поставщикам, в системе это выглядит как заказ наших товаров (хотя поставщику мы, конечно, посылаем его коды и его названия - благо связь есть) и на склад принимеем тоже наши товары (в партии есть, конечно, ссылка на накладную, т.е. мы можем выяснить, чьи же товары лежат у нас на складе, но опять же это в норме никого не интересует). в результате этого комплектация происходит прозрачно независимо от того, у какого поставщика мы в итоге купили товар (Вы момент комплектации тоже обошли в описании). Опять же, поскольку все продажи товара идут под одним сквозным кодом - никаких проблем с аналитикой нет. Аенализируя движения склада, мы в принципе можем вычислить, сколько конкретно шапочек поставщика А мы продали под нашим брендом "Шапочка фиолетовая" (опять же, это мало кого волнует обычно - но система позволяет). Все таки, осталось непонятным: в случае переименования товара поставщиком - как будет происходить "процесс"? Шаг1: на склад приняли зеленую шапку по артикулу1 Шаг2: создали свой товар шапка зеленая Шаг3: пришел тотже артикул с другим названием... если записи НЕ удалаяются, то этот товар тупо перезапишет (артикул входит в ключ) запись о зеленой шапке. Была шапочка зеленая - стала фиолетовая. ... Ни на каких внешних ссылках ЭТО не скажется... то есть как смотрел ваш товар "шапка зеленая" в эту запись, так и смотрит теперь, только там "шапка фиолетовая"... впринципе можно и так. Но! А теперь смотрите внимательно за вашими ручками : старые заявки поставщикам ... угу при перепечати (ихний бух запросил сверку)... стали поставками шапки ... упс. "фиолетовой". И? :) ... или поясните, не вижу как это "обойти можно"... товар по артикулу - ТОТЖЕ САМЫЙ... ... А чего там описывать? При наличии произвольной связи М:М (синонимы) мойТовар - Поставленный(все равно от кого) и наличии правил работы с Поставщиком - распределить заказ оптимальным способом автоматом - достаточно простая задача. Простой градиентный спуск. ... часто товары одного поставщика объединялись у меня (например память noname производителя... туда же втыкался и якобы фирменный Самвсуньг, который у меня не проходил ряд тестов на качество... Китай он и есть китай). Понятно, что это делалось уже вручную... но тоже "однажды" (далее автомат помнил об этом). Разница в том, что Вы по сути основные проблемы решили накапливаемой историей... причем ту, которую как раз обсуждаем - не решили совсем... у меня - работа с прайс-листами (поставщиков, своими) - отдельна и динамична (правка, удаление и т.д.) , а вот работа с документами (аналог 1С - проведенный документ) - жестко фиксирована. перенос Сущностей из одного состояния в другое - копированием (и соответственно своим ссылочным ОЦ). ... в последствии там и история была, но для совсем других целей (в отдельной таблице): кто, что и когда наколбасить успел... то есть если товар переименовывался руками - старое значение попадало в историю... но никто никогда на таблицу истории не ссылался кроме самого модуля "показать/откатить изменения". И вот их как раз если с сотню-другую набежало - то это очень много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 17:06 |
|
||
|
Как правильно хранить данные
|
|||
|---|---|---|---|
|
#18+
ViPRosБредятинаРассмотрим возможность реализации "алгебры схем" с использованием "реляционной алгебры". [Это для разработчиков MS SQL, которые используют концепцию схемы для неких целей:)] Пусть у нас есть схема A и схема B. Пусть схема A может быть представлена денормализованным отношением A, а схема B может быть представлена денормализованным отношением B. Выполним алгебраическую операцию и получим отношение C. Всегда ли можно сказать какую именно схему представляет это отношение? нет получится вырожденная схема из одного отношения :) Но в модели верхнего уровня не отношения, а типы сущности и связи между ними. Тогда уж - вырожденная схема из одного типа (агрегатной) сущности. Здесь уместно еще раз озвучить историческую суть проблемы (в основном, это проблема РМД). Рассмотрим триаду Структура-ОЦ-ЯМД, характеризующую логическую МД. 1) Структура в РМД не соответствует реальному миру с его сущностями и связями между сущностями. Другими словами, с помощью структуры РМД невозможно моделировать практически ни одну предметную область. Именно поэтому и возникает архитектура "модель верхнего уровня+маппинг+РМД". 2) Для моделирования (в РМД) к Структуре нужно добавить ОЦ. Специальные "системные ОЦ": ограничение целостности сущности и ограничение ссылочной целостности (напомню, что термин сущность (entity) использовался Коддом, 1979 непосредственно в определении первого ОЦ). Это важный момент. Если в семантически развитой модели именно Структура служит для моделирования предметной области, то в РМД для этого служит связка Структура-ОЦ. 3) Но, ЯМД в РМД, в свою очередь, ориентирован только на Структуру, а вовсе не на связку Структура-ОЦ. Другими словами, ЯМД в РМД не ориентирован на манипулирования данными предметной области. 4) В семантически развитых МД, в которых упомянутые "системные ОЦ" органически входят в состав Структуры, ЯМД, разумеется, тоже ориентирован не Структуру. Но в этом случае он ориентирован именно на манипулирование данными предметной области. 5) Все это, косвенно, подтверждает, что "алгебра схем" невозможна. 6) Но она и не нужна, так как интерактивный интерфейс является неотъемлемой частью СУБД, а то, каким образом реализованы "вычислительные мощности" этого интерфейса, не имеет никакого практического значения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 17:19 |
|
||
|
Как правильно хранить данные
|
|||
|---|---|---|---|
|
#18+
ViPRosБредятинаОчевидно, что, формально, по разным причинам может быть несколько (разных) товаров конкретного поставщика (разных поставщиков), связанных с одним вашим товаром. Не надо:) Суть была передана верно. Именно несколько товаров конкретного поставщика, связанных с одним "нашим":) Речь о том, какой именно товар заказывать у поставщика, когда нужно пополнить запас "нашего" товара. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 17:22 |
|
||
|
Как правильно хранить данные
|
|||
|---|---|---|---|
|
#18+
ViPRosчто б начать "алгебру схем", надо определить "связи" межсхемные Не надо начинать:) Нет никакой объективной необходимости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2013, 17:23 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38106215&tid=1541395]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
137ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 464ms |

| 0 / 0 |
