powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как правильно хранить данные
25 сообщений из 313, страница 10 из 13
Как правильно хранить данные
    #38105701
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109, упустил.

Как определить что этот товар никогда не продавался? По артикулу. Он в моем прайсе выведен в отдельное поле - нафига? Это сквозная уникальная идентификация моего прайса. Если в проданном такого артикула нет - вставляем, есть игнорим.

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

Товар в "поставки" - добавляется если его там нет, обновляет поля цен и остатков (и чего ещё надо) если есть, удаляется если его нет в текущем полном прайсе, или остается, если пришли только изменения к старому...

... а теперь, скажите что произойдет в ваших таблицах при таком изменении названия товара
... а если артикулов поставщиков - нет?

к примеру, сейчас на портале около 450тыс. позиций, с артикулом из них - хорошо если есть 1%
... тем не менее, распознаваемость "оно же" при обновлении прайса дает достаточно большой процент попаданий... :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105935
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosБредятина,
могут
на скрине ж видно - мигрирующие ссылки и мигрирующие свойства
Очень хорошо.
Два вопроса.
1) Для схемы A(Клиент)-->B(Накладная)-->C(Запись накладной)<--D(Товар)
разрешается (и поддерживается впоследствии) "миграция" ссылки на D из C в A?
2) Причем здесь "алгебра схем"?
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105959
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь, перепутал направление ("миграция" идет к C, разумеется) и забыл, что это, все-таки, ссылки (односторонние связи), а не связи. Так что первый вопрос снимается. Все нормально.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38106093
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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-летней тетушки складского работника, которой нужно уметь распаковать файл прайса и подсунуть его программе.
У меня есть предложение - если Вы считаете эту свою систему образцом и т.п. - в следующий раз при поиске фриланса в "Работе" давайте ссылку на эту ветку. Будет такая реклама (гы-гы) "Вот какой я молодец и как клево и недорого решаю проблемы заказчика". А заказчик уж подумает, нужна ему такая клевость или ну его нафиг.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38106112
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин,

Как всё запущено... перечитайте внимательно (система частично УЖЕ воспроизведена на потрале и работает ваще без артикулов поставщиков :). Как поведут себя Ваши таблицы - Вы решили тоже "замять для ясности, нет?

Тут есть моё первое предложение для ТС, есть подробное пояснение ему что откуда и куда, есть даже описание работавшей системы и пример
... имеющий глаза - увидит. Остальным - похоже бесполезно. У меня каникулы - кончились.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38106116
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

P.S. Всем огромное спасибо, давно так не веселился.
С наступившим Новым Годом и успехов в работе!
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38106118
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
отжежйлпересете...
креатиФФщики...
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38106121
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109... а теперь, скажите что произойдет в ваших таблицах при таком изменении названия товара

Изменения названия поставщика на работу системы вообще не повлияет никак.
Если поставщику в заказе зачем-то нужно название - оно там будет, а внутри нашей организации - будет не заметно никак.
Возможно, это обнаружат при приеме накладной на склад - но скорее всего нет. Штрих-код совпал, количество совпало - все, в графу "название" никто может и не заглянуть.
Вы вон писали "у поставщика менялись 205 названий - достали, козлы". Я вот реально не знаю, сколько процентов позиций у поставщиков меняют названия.
"Всем по(фиг)"(с) Лурк.

Arhat109...
... а если артикулов поставщиков - нет?

Если артикулов поставщиков нет - то с таким поставщиком лучше дел не иметь.
И не потому что система не позволяет (системе пофиг, будет считать название уникальным артикулом), а потому что у него бардак в бизнес-процессах. Никогда Вы не сиожете быть уверены, что Вы получите именно то, что заказали, и именно тогда, когда заказали.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38106144
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рассмотрим возможность реализации "алгебры схем" с использованием "реляционной алгебры". [Это для разработчиков MS SQL, которые используют концепцию схемы для неких целей:)]
Пусть у нас есть схема A и схема B.
Пусть схема A может быть представлена денормализованным отношением A, а схема B может быть представлена денормализованным отношением B.
Выполним алгебраическую операцию и получим отношение C.
Всегда ли можно сказать какую именно схему представляет это отношение?
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38106215
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Как поведут себя Ваши таблицы - Вы решили тоже "замять для ясности, нет?

Нет.
Есть таблица наших товаров. Оттуда никогда ничего не удаляется
Есть таблица товаров поставщиков с ключом "Артикул, Поставщик" и ссылкой (0..1) на таблицу наших товаров. Тоже никогда ничего не удаляется - только добавляется и обновляется.
Есть таблица элементов заказа - ссылка (1..1) на таблицу наших товаров.

Т.е. у нас есть три записи в таблице товаров поставщиков и одна - в нашем каталоге.
"зеленая шапочка" поставщика связана с "фиолетовой" нашей товароведом 1 раз ,
и исправит ли ошибку поставщик в прайсе или нет - нам все равно.
При приемке в записях поставщиков меняются флаги "наличие"( + меняются еще какие-то поля, если они изменились у поставщика ). На основании этих флагов (и возможного остатка на складе) определяется, активен ли наш товар. На основании (возможно изменившихся) цен поставщиков и цен складских остатков - меняется цена нашего товара, делается запись в историю цен.
поскольку наш товар не меняется в процессе - элементы заказов выглядят тоже однотипно, отличаясь лишь количеством и ценой.
По элементам заказов формируем заказы к поставщикам, в системе это выглядит как заказ наших товаров (хотя поставщику мы, конечно, посылаем его коды и его названия - благо связь есть) и на склад принимеем тоже наши товары (в партии есть, конечно, ссылка на накладную, т.е. мы можем выяснить, чьи же товары лежат у нас на складе, но опять же это в норме никого не интересует). в результате этого комплектация происходит прозрачно независимо от того, у какого поставщика мы в итоге купили товар (Вы момент комплектации тоже обошли в описании).
Опять же, поскольку все продажи товара идут под одним сквозным кодом - никаких проблем с аналитикой нет. Аенализируя движения склада, мы в принципе можем
вычислить, сколько конкретно шапочек поставщика А мы продали под нашим брендом "Шапочка фиолетовая" (опять же, это мало кого волнует обычно - но система позволяет).
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38106331
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин Есть таблица наших товаров. Оттуда никогда ничего не удаляется
Есть таблица товаров поставщиков с ключом "Артикул, Поставщик" и ссылкой (0..1) на таблицу наших товаров. Тоже никогда ничего не удаляется - только добавляется и обновляется.
Есть таблица элементов заказа - ссылка (1..1) на таблицу наших товаров.

Т.е. у нас есть три записи в таблице товаров поставщиков и одна - в нашем каталоге.
"зеленая шапочка" поставщика связана с "фиолетовой" нашей товароведом 1 раз ,
и исправит ли ошибку поставщик в прайсе или нет - нам все равно.
При приемке в записях поставщиков меняются флаги "наличие"( + меняются еще какие-то поля, если они изменились у поставщика ). На основании этих флагов (и возможного остатка на складе) определяется, активен ли наш товар. На основании (возможно изменившихся) цен поставщиков и цен складских остатков - меняется цена нашего товара, делается запись в историю цен.
поскольку наш товар не меняется в процессе - элементы заказов выглядят тоже однотипно, отличаясь лишь количеством и ценой.
По элементам заказов формируем заказы к поставщикам, в системе это выглядит как заказ наших товаров (хотя поставщику мы, конечно, посылаем его коды и его названия - благо связь есть)
Очевидно, что, формально, по разным причинам может быть несколько товаров конкретного поставщика, связанных с одним вашим товаром. Либо Вы это исключаете на уровне БД (создаете еще один ваш товар, в крайнем случае), либо применяете некий алгоритм заказа товара у поставщика, учитывающий такую ситуацию.
Кот Матроскин и на склад принимеем тоже наши товары (в партии есть, конечно, ссылка на накладную, т.е. мы можем выяснить, чьи же товары лежат у нас на складе, но опять же это в норме никого не интересует).
В "норме никого не интересует" не очень хороший аргумент:) Просто, фактически хранятся остатки товаров именно поставщиков, и хорошо.
Кот Матроскин ...Опять же, поскольку все продажи товара идут под одним сквозным кодом - никаких проблем с аналитикой нет. Аенализируя движения склада, мы в принципе можем
вычислить, сколько конкретно шапочек поставщика А мы продали под нашим брендом "Шапочка фиолетовая" (опять же, это мало кого волнует обычно - но система позволяет).
Опять несколько неуверенно - "но система позволяет". В детализации отгрузки вашего товара просто есть (видимо) конкретные партии (то есть, фактически, конкретные товары поставщиков).
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38106364
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаИзвиняюсь, перепутал направление ("миграция" идет к C, разумеется) и забыл, что это, все-таки, ссылки (односторонние связи), а не связи. Так что первый вопрос снимается. Все нормально.
хе
можно и обратно
токо при этом надо использовать агрегатные функции
но это уже не миграция, а вычисления по связям (вычислимые свойства - в которых можно сослаться на свойства объектов по нисходящим-восходящим связям)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38106374
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаРассмотрим возможность реализации "алгебры схем" с использованием "реляционной алгебры". [Это для разработчиков MS SQL, которые используют концепцию схемы для неких целей:)]
Пусть у нас есть схема A и схема B.
Пусть схема A может быть представлена денормализованным отношением A, а схема B может быть представлена денормализованным отношением B.
Выполним алгебраическую операцию и получим отношение C.
Всегда ли можно сказать какую именно схему представляет это отношение?
нет
получится вырожденная схема из одного отношения
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38106392
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что бы узнать как формирован агрегат, надо хранить метод агрегации в агрегате (хотя даже это е дает гарантии восстановления схемы, если внутри метода есть агрегатные функции)
а РА воще не знает что такое домен и потому даже из денормализованной до одного отнощения схемы нет возврата
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38106417
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаОчевидно, что, формально, по разным причинам может быть несколько (разных) товаров конкретного поставщика (разных поставщиков), связанных с одним вашим товаром.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38106422
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и обратно 1-товар их , много ваших

вощем без спецификаций и языка конфигураций тут нифига не сделаешь :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38106425
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что б начать "алгебру схем", надо определить "связи" межсхемные
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38106449
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPвот если определим нормально, то я обобщу механизм связывания в ВИПРОС и тем самым убью ссылки :)
двойная выгода получится
а потом сделаем провайдер хоть к мамсу хоть в носкл да хоть куда при нужде
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38106711
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаОчевидно, что, формально, по разным причинам может быть несколько товаров конкретного поставщика, связанных с одним вашим товаром. Либо Вы это исключаете на уровне БД (создаете еще один ваш товар, в крайнем случае), либо применяете некий алгоритм заказа товара у поставщика, учитывающий такую ситуацию.

Да, такое бывает. У меня это реализовано не при помощи привязки нескольких товаров поставщика к одному нашему, а при помощи механизма дубликатов - можно указать, что
Товар1 есть дубликат товара2, а вот товар2 уже связан с нашим товаром.
Хотя можно было бы и привязывая все и выставляя признак "заказывать этот", дело вкуса.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38106779
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosБредятинаИзвиняюсь, перепутал направление ("миграция" идет к C, разумеется) и забыл, что это, все-таки, ссылки (односторонние связи), а не связи. Так что первый вопрос снимается. Все нормально.
хе
можно и обратно
токо при этом надо использовать агрегатные функции
но это уже не миграция, а вычисления по связям (вычислимые свойства - в которых можно сослаться на свойства объектов по нисходящим-восходящим связям)
Проблему несимметричного доступа в моделях, наследованных от РМД, мы уже рассматривали. "Обратную" связь приходится вычислять.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38106793
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинНет.
Ещё один вменяемый участник трепа... приношу свои извинения, ошибся.
Кот Матроскин Есть таблица наших товаров. Оттуда никогда ничего не удаляется
то есть, "история" копится прямо в вашем прайсе (это же аналог моего прайса, так?)
Если у меня в прайсе, в среднем болталось что-то около 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С - проведенный документ) - жестко фиксирована.
перенос Сущностей из одного состояния в другое - копированием (и соответственно своим ссылочным ОЦ).

... в последствии там и история была, но для совсем других целей (в отдельной таблице): кто, что и когда наколбасить успел... то есть если товар переименовывался руками - старое значение попадало в историю... но никто никогда на таблицу истории не ссылался кроме самого модуля "показать/откатить изменения". И вот их как раз если с сотню-другую набежало - то это очень много.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38106806
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosБредятинаРассмотрим возможность реализации "алгебры схем" с использованием "реляционной алгебры". [Это для разработчиков MS SQL, которые используют концепцию схемы для неких целей:)]
Пусть у нас есть схема A и схема B.
Пусть схема A может быть представлена денормализованным отношением A, а схема B может быть представлена денормализованным отношением B.
Выполним алгебраическую операцию и получим отношение C.
Всегда ли можно сказать какую именно схему представляет это отношение?
нет
получится вырожденная схема из одного отношения
:)
Но в модели верхнего уровня не отношения, а типы сущности и связи между ними. Тогда уж - вырожденная схема из одного типа (агрегатной) сущности.
Здесь уместно еще раз озвучить историческую суть проблемы (в основном, это проблема РМД).
Рассмотрим триаду Структура-ОЦ-ЯМД, характеризующую логическую МД.
1) Структура в РМД не соответствует реальному миру с его сущностями и связями между сущностями. Другими словами, с помощью структуры РМД невозможно моделировать практически ни одну предметную область. Именно поэтому и возникает архитектура "модель верхнего уровня+маппинг+РМД".
2) Для моделирования (в РМД) к Структуре нужно добавить ОЦ. Специальные "системные ОЦ": ограничение целостности сущности и ограничение ссылочной целостности (напомню, что термин сущность (entity) использовался Коддом, 1979 непосредственно в определении первого ОЦ). Это важный момент. Если в семантически развитой модели именно Структура служит для моделирования предметной области, то в РМД для этого служит связка Структура-ОЦ.
3) Но, ЯМД в РМД, в свою очередь, ориентирован только на Структуру, а вовсе не на связку Структура-ОЦ. Другими словами, ЯМД в РМД не ориентирован на манипулирования данными предметной области.
4) В семантически развитых МД, в которых упомянутые "системные ОЦ" органически входят в состав Структуры, ЯМД, разумеется, тоже ориентирован не Структуру. Но в этом случае он ориентирован именно на манипулирование данными предметной области.
5) Все это, косвенно, подтверждает, что "алгебра схем" невозможна.
6) Но она и не нужна, так как интерактивный интерфейс является неотъемлемой частью СУБД, а то, каким образом реализованы "вычислительные мощности" этого интерфейса, не имеет никакого практического значения.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38106808
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosБредятинаОчевидно, что, формально, по разным причинам может быть несколько (разных) товаров конкретного поставщика (разных поставщиков), связанных с одним вашим товаром.
Не надо:) Суть была передана верно. Именно несколько товаров конкретного поставщика, связанных с одним "нашим":) Речь о том, какой именно товар заказывать у поставщика, когда нужно пополнить запас "нашего" товара.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38106815
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosчто б начать "алгебру схем", надо определить "связи" межсхемные
Не надо начинать:) Нет никакой объективной необходимости.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38106825
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

ну будем считать, что ВИПРОС тебя устраивает :)
...
Рейтинг: 0 / 0
25 сообщений из 313, страница 10 из 13
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как правильно хранить данные
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]