powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как правильно хранить данные
313 сообщений из 313, показаны все 13 страниц
Как правильно хранить данные
    #38100935
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица товаров, есть таблица заказов, в таблице заказов хранятся идентификаторы купленных товаров. Товар удалили, в результате в таблице заказов остался идентификатор, который ссылается на несуществующий товар. По идее этот идентификатор нужно обнулять после удаления товаров, но тогда у нас не ведется статистика покупок. Как в таком случае правильно хранить товары, которые купили? Спасибо
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38100957
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JulTКак в таком случае правильно хранить товары, которые купили?Нельзя удалять товары, как же ещё?
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38100966
Gwa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JulT,
Конечно товар, который хотя бы раз использован в таблице заказов, удалять нельзя.
Представим такую ситуацию, что товар больше не продаётся.
Не то чтобы его нет на складе, а он вообще больше не производится.
Тогда в интерфейсе формирования заказа его нужно не показывать.
Для этого обычно в таблице товаров делается поле Активный и при формировании заказа
выбираются только активные записи.
Запись о товаре не удаляется, а деактивируется.
Как то так..
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101165
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GwaJulT,
Конечно товар, который хотя бы раз использован в таблице заказов, удалять нельзя.
Представим такую ситуацию, что товар больше не продаётся.
Не то чтобы его нет на складе, а он вообще больше не производится.
Тогда в интерфейсе формирования заказа его нужно не показывать.
Для этого обычно в таблице товаров делается поле Активный и при формировании заказа
выбираются только активные записи.
Запись о товаре не удаляется, а деактивируется.
Как то так..
то что нужно, спасибо
и alexeyvg спасибо :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101193
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

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

Товар, цена товара и объем заказа - это копированные данные из текущих таблиц и не должно там (в заказах) быть никаких "идентификаторов"... Заказ далее живет своей половой жизнью, никак на завися от товаров, складов, ценовой политики и т.д. :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101199
пгуые123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JulT,

Пойдите дальше, не стесняйтесь )
Представьте, что есть сущность "Товар", а есть "Товар выставлен в продажу в период...". Тогда и это наивное поле "Активный" не понадобится
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101201
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JulT,

Просто не удалять товары, помечать, как неиспользуемые.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101204
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Arhat109]alexeyvg,

ваще-то, таблицы товаров и заказов не должны быть связаны. Заказанный товар должен копироваться в заказ.


Ага, и писать на клиппере...

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

Надо вообще-то прайс-листы вести... И вот уж что, точно должно копироваться в заказ, так это цена.

В объем мысли частично правильные, но что там и как с заказами - надо выяснять, читать постановку, и т.д.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101215
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109alexeyvg,

ваще-то, таблицы товаров и заказов не должны быть связаны. Заказанный товар должен копироваться в заказ.Да, так тоже делают. Но со связкой удобнее.

Arhat109Ситуация с товаром, может быть не сосвем понятна, но посмотрите на ситуацию с ценой заказа: сделали заказ по одной цене, а через месяц изменили цену товаров... и? все старые заказы стали по новой цене?Во первых, разумеется, все значимые для заказа параметры товара (типа каталожной цены) нужно копировать в заказ, это очевидно.

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

Можно так же вместо копирования прайсовой цены делать версионность цены товара, но ИМХО это избыточно, да и не нужно (хотя лог изменения цены товара, да и любых других важных параметров товара необходим). Хотя тут уже могут быть разные подходы.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101235
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> ваще-то, таблицы товаров и заказов не должны быть связаны

Никогда никому об этом не говорите. Засмеют.

> Товар, цена товара и объем заказа - это копированные данные из текущих таблиц

Смело можете сдавать в макулатуру все учебники, по которым вы учились. Для любой товарной сделки предмет сделки - ссылка. Просто потому, что у предмета сделки есть собственный жизненный цикл. Как факт.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101325
пгуые123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arhat109Ситуация с товаром, может быть не сосвем понятна, но посмотрите на ситуацию с ценой заказа: сделали заказ по одной цене, а через месяц изменили цену товаров... и? все старые заказы стали по новой цене?Ох уж... эти проектировщики без сомнений и упрека...
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101361
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621,

можете посмеяться. Мне также смешны утверждения про "никогда не удаляются"... не умение работать с данными, туда и приводит. Впрочем как и поля "активная запись"... оттудова же.

Говнокодерство, активно сменяется говнопроектированием... благо объемы и скорости вычислительных устройств позволяют. Зато потом, вопрошаем "таблица в миллион записей, поиск идет 30секунд... хотя там 80% это старое неактивное барахло, что делать?"

Копирование товара в заказ - никак не мешает его жизненному циклу. Решите этот вопрос на досуге самостоятельно, плиз.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101364
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg, сам товар - такое же значимое поле. Сущность Цена - просто проявляет те же самые проблемы, значительно чаще и шустрее, но сами проблемы - в точности такие же.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101365
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пгуые123,

вот, вот... а можно пойти ещё дальше: Есть товар от поставщика1, он же от поставщика2... а поставщик3 вчерась переименовал свой товар, который заказали позавчера, но он ещё даже не поступил на склад...
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101444
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109, неумение работать с данными (многие программисты SQL - программистами не являются, SQL - НЕ ЯП)

, приводит к тому, что "данные не удаляются никогда"... но как-то НАДО различать рабочие записи от мусора
... вот и появляется ТУПОЕ поле с признаком "Активная Запись"

... потому что, сборкой мусора, выделением памяти, и её управлением занимался на самом деле далеко не каждый. Это есстественное знание любого программиста на любом нормальном ЯП. В необходимый арсенал знаний SQL-пользователя - НЕ ВХОДИТ (и не должно в общем-то).

ещё раз (писал уже ранее) SQL - пользователь <> программист.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101449
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> ваще-то, таблицы товаров и заказов не должны быть связаны

Никогда никому об этом не говорите. Засмеют.


... вот тут 13510983 Вы сами советовали что-то подобное... уже засмеяли? :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101454
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109guest_20040621,

можете посмеяться. Мне также смешны утверждения про "никогда не удаляются"... нее умение работать с данными, туда и приводит. Впрочем как и поля "активная запись"... оттудова же.


Я посмеялся.

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


Говнокодерство, активно сменяется говнопроектированием...

И пример его ты нам в топике привел.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101469
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv, данные - они всего лишь данные. И когда они больше не нужны БЛ, их можно (иногда и нужно, и даже необходимо) удалять из БД. Другой вопрос "когда и как"... можно и логически, можно и путем добавления признака "активная запись", можно и путем переноса в архивное хранилище, можно и ... конкретное применение - сильно зависит от задачи.

И, советовать всегда и везде "данные не удаляются из БД" - это и есть пример копропроекта. Да и правда, чего "париться"? Объемы хранилищ и не такое дерьмо хранить позволяют... нафига заботится о чистоте ещё на стадии проектирования?!?

Это и есть говноподход, насаждаемый всё активней. От неумения работать с данными.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101478
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109, ни Вы, ни Ваш оппонент не попали точно в истину, но Вы неизмеримо дальше от неё. Используя Ваши термины, скажу так: данные в БД (некие конкретные записи) в подавляющем большинстве случаев входят в состав других, более сложных объектов, и, соответственно, не должны удаляться (подвергаться "сборке мусора") отдельно от этих объемлющих объектов. Объемлющие объекты в свою очередь входят в чей-то состав и в итоге практически всегда попадают в очень большой объект, скажем, "данные продаж за 2012-й год". Когда и как такой объект будет удалён и позволит "почистить мусор"... зависит от бизнес-процесса, конечно, но уже давно довольно очевидно, что данные гораздо ценнее, нежели место на архивных и не очень архивных носителях. Также довольно очевидно, что бизнес-логика склонна меняться и развиваться, и может оказаться так, что данные, которые вчера удалены как ненужные, сегодня оказались нужны. В результате этого Ваша позиция начинает напоминать, например, искусство упаковки данных в битовые структуры - да, в некоторых случаях нужно и сегодня, но попытка объявить его глобально необходимым вызовет здоровый и обоснованный смех.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101484
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> можно и логически, можно и путем добавления признака "активная запись"

Дружище, логическое удаление - это и есть значение признака. Вы читаете то, что вам пишут?

> можно и путем переноса в архивное хранилище

Перемещение в архив никак не связано с логическим удалением.

> советовать всегда и везде "данные не удаляются из БД"

Именно так. Это рекомендация по умолчанию. Обработка других вариантов требует гораздо более высокой квалификации от разработчика.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101491
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> Флудить , троллить переходя на личности - это весь арсенал ваших аргументов, нет?

Дружище, вы категорически неправильно интерпретируете то, что вам пишут. Представьте, что второклассник с видом невероятного превосходства рассказывает студенту института о преимуществах таблицы умножения. Примерьте к себе образ второклассника, аналогия достаточно точная. Я даже не знаю, как реагировать на ваши ответы. Ваши представления о проектировании реально на уровне начала массового производства компьютеров. Вы на самом деле боретесь за право оставаться невежественным. Да нет проблем, если хотите - сколько угодно. Только апломба чуть меньше - и наслаждайтесь обсуждениями с ЧАЛом и им подобными.

Вам таки хочется потроллить... ок.

Предварительно на следующий пост:
Это из вашего поста: "Заказы - таблица, не связанная с продуктами. Отдельная таблица для связи заказа с продуктами."
(по картинке автора, как раз связана)... часть вашего ответа автору на вопрос "Очень сомневаюсь что правильно..."

... я читать не умею или Вы смотреть, дружище? :)

А теперь, по поводу перепалки, уважаемый "студент":
1. Моё сообщение было о копировании товара в заказ.
2. Ваш пост "о посмеяться" (как видим поперек моего поста) даже без пояснений... или лениво, или их просто нету... фиг знает.
3. Моё пояснение, основной частью которого было "не удаляем, от неумения работать с данными".
4. Ваш ответ о мировоззрении (опять же поперек поста) с вкраплениями не относящихся к вопросу деталей. Но без объяснений почто неудаляем, заметьте...
5. Мой ответ о нежелательности писать поперек...
6. и теперь Вы мне рассказываете о таблице умножения...

Доучитесь в своем институте уже, и приходите - пообщаемся, уважаемый студент.

P.S. Это наша с Вами третья перепалка, и она опять инициирована с вашей стороны, и опять с желанием оскорбить, без какого-либо полезного обсуждения... так кто из нас "второклассник"? :)

P.P.S. Ещё раз: если нет аргументов - не надо троллить в теме. Давайте обсуждать по-существу.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101503
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Отдельная таблица для связи заказа с продуктами.

Был уверен, что на таком-то уровне вы имеете представление о проектировании. Вижу, что ошибался. ОК, совсем на пальцах:

product ()
order ()
order_details (..., order_id, product_id, ...)

Нужно разжевывать, почему это так?

> опять с желанием оскорбить

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


softwarerИспользуя Ваши термины, скажу так: данные в БД (некие конкретные записи) в подавляющем большинстве случаев входят в состав других, более сложных объектов, и, соответственно, не должны удаляться (подвергаться "сборке мусора") отдельно от этих объемлющих объектов. Объемлющие объекты в свою очередь входят в чей-то состав и в итоге практически всегда попадают в очень большой объект, скажем, "данные продаж за 2012-й год". Когда и как такой объект будет удалён и позволит "почистить мусор"... зависит от бизнес-процесса, конечно, но уже давно довольно очевидно, что данные гораздо ценнее, нежели место на архивных и не очень архивных носителях.

Да,да... именно такой копроподход и активно внедряется последнее время. Его вариант реального применения:
Есть списки данных, составляемые руководством для проработки сотрудниками... как правило составляются разово, как текущая задача. Требуется отчет "кому сколько назначено" (дабы грузить как положено)... решение:
Делаем выборку из списков на лету суммируя и вычисляя соответствующие показатели... всё "как надо"... на практике оказывается (99% содержимого - отработанный мусор), что запрос по отчету "летает" аж по 8 минут (соединение ограничено 60сек.), сажает сервак с 4-я ядрами на 500% да так, что никто ничего из БД выбрать не может ваще
... вместо того, чтобы ещё при создании списка, делать интегральные вычисления по нему, с корректировкой "на лету" (редактирование списка)... "блин, это же сложно! А вдруг оно не так посчитает?"

Смотрите ответ нашего "студента" - он верен: "это требует другой квалификации".

softwarer Также довольно очевидно, что бизнес-логика склонна меняться и развиваться, и может оказаться так, что данные, которые вчера удалены как ненужные, сегодня оказались нужны.

Для этого существует логическое (и физическое из рабочий части БД) удаление с переносом в "архивные структуры". Дампы, опять же никто не отменял, вроде как (на самый крайний случай)... или о них тоже уже давно забыли на передовых роспилах?

softwarer В результате этого Ваша позиция начинает напоминать, например, искусство упаковки данных в битовые структуры - да, в некоторых случаях нужно и сегодня, но попытка объявить его глобально необходимым вызовет здоровый и обоснованный смех.
Глобально необходимым - никто ничего не объявлял... найдёте - покажите. Пока наоборот, оппоненты тут пытаются какие-то постулаты объявить глобальными...
Специально оставил без комментариев первую часть... ну и? Здоровый и обоснованный смех, в данном случае, я так понимаю вызывает желание писать правильный, компактный код вместо говнокодерства (которое УЖЕ возведено в ранг "так надо"), нет?

Тогда, что смешного?
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101506
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если уж обсуждение идет в таком русле, замечу насколько важна концепция связи. В случае ее поддержки в СУБД, целостность поддерживается автоматически, и вопрос автора темы вообще не возник бы (перечитайте его внимательно). Связь автоматически исчезла бы при удалении товара, а значения свойств заказа, помещенных в него в результате денормализации, сохраняли бы необходимую информацию))
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101509
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot guest_20040621Дружище, я потратил лет пять на то, чтобы в этом форуме не было обсуждений про естественные ключи. Получилось. До вас я был уверен, что и обсуждений по поводу истории изменений больше не будет. Мне не интересно сто раз писать одно и то же разным людям. Хотите - ищите самостоятельно, не хотите - живите обкуренным китайским первоклассником. В последнем случае воздержитесь от комментариев и ответов на не адресованные персонально вам вопросы.[/quot]

Дружище, потратьте ещё лет пять и доучитесь уже в своём институте, предварительно закончив школу. Прежде чем писать.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101524
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я очень злюсь, когда не могу что то вспомнить (эт часто, к сожалению, бывает со мной)
я бы мог вспомнить все - если бы я точно мог знать собственную и окружающего мира поведенческую модель
к сожалению я этого не знаю (или знаю только очень малую часть и то с точностью ***)
дык вот студенты - если вам неизвестна модель генерации снимка, то не удаляйте снимок, если вы сию ж секунду не собираетесь умереть)
декомпозировать (и хранить с методом агрегации), сжать без потерь и т.д. можно
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101527
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тот, кто считает, что он Постановщик задачи или там знаток Предметной области и потому его Классификация Окончательна - Дурак!
Вы постановщики в цепи постановщиков.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101536
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosтот, кто считает, что он Постановщик задачи или там знаток Предметной области и потому его Классификация Окончательна - Дурак!
...
А тот, кто так не считает, как мы здесь выяснили, - баран)))
Итог обсуждения темы про "товары и заказы" - все Постановщики делятся на дураков и баранов!)))
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101539
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

а что? есть еще категории?
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101544
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Копирование товара в заказ - никак не мешает его жизненному циклу.

alexeyvg, сам товар - такое же значимое поле. Сущность Цена - просто проявляет те же самые проблемы, значительно чаще и шустрее, но сами проблемы - в точности такие же.Да это понятно. Но на практике остальное для заказа не так уж и важно.

А копирование товара в заказ проблемы не решит, потому что с товаром ещё много чего связано. Это получается совет вообще не делать ссылок на записи в БД, а всегда копировать запись целиком вместо ссылок? Чем заказ отличается от сотни других сущностей, в которых есть ссылка на товар?

Опять же "сам товар" - это десятки аттрибутов и сотни записей в нескольких связанных таблицах, как это "копировать в товар", непонятно.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101545
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosБредятина,
а что? есть еще категории?
Видимо, нет. Кстати, тему про макротипы перенесли в MS SQL
http://www.sql.ru/forum/actualthread.aspx?tid=994944
так как она оказалась не про макротипы)))
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101550
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Да,да... именно такой копроподход и активно внедряется последнее время.
Я постепенно начинаю чувствовать необходимость даже в более старых подходах. Например, взять кое-кого за волосы и хорошенько промыть ему рот мылом.

Arhat109Его вариант реального применения:
Ваш опыт печален, но неинтересен. Разве что - в контексте разговора он в очередной раз показывает Ваше.. неполное и устаревшее представление о СУБД и их возможностях, которое Вы почему-то называете "квалификацией".

Arhat109Для этого существует логическое (и физическое из рабочий части БД) удаление с переносом в "архивные структуры".
(зевая) Удаление тут вообще не при чём. Я могу взять данные за 2010-й год, объявить их read-only, перекинуть на архивный носитель и положить в сейф. Когда потребуется - воткну носитель в сервер, сделаю запрос и получу данные. Если сделаю запрос, не воткнув носитель - получу ошибку со смыслом "нужные данные недоступны". И ни одного delete для этого не требуется, не выполняется и выполняться не будет. Учите матчасть.

Arhat109Дампы, опять же никто не отменял,
Это уже в духе анекдота "да, можете сжечь эти бумаги... но предварительно обязательно снимите с них ксерокопии".
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101552
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

кайф, так что все с категориями в порядке
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101556
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109MasterZiv, данные - они всего лишь данные. И когда они больше не нужны БЛ, их можно (иногда и нужно, и даже необходимо) удалять из БД. Другой вопрос "когда и как"... можно и логически, можно и путем добавления признака "активная запись", можно и путем переноса в архивное хранилище, можно и ... конкретное применение - сильно зависит от задачи.Я понимаю вашу позицию и целиком поддерживаю.

Только сейчас мы ведём речь о тех данных, которые нужны в БД.

ТС ясно сказал - ему нужны данные о заказах и о товарах, которые включены в этот заказ.

Обсуждать, как правильно удалить эти товары из базы в таком контексте глупо.

Вы же не предлагаете просто время от времени удалять товары, например, по принципу "в настоящий момент отсутствуют на складе"?

Это всё есть "активные" данные, они естественно в базе нужны.

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

аваще вопрс интересны
вот есть "таблица", "внешний ключ" и "триггер"
с помощью этого триплета можно много чего делать
но часто нужны "связанные таблицы", "обобщенные таблицы", "обобщенные триггеры", "связанные триггеры" (первого порядка)
но часто нужны "связанные таблицы", "обобщенные таблицы", "обобщенные триггеры", "связанные триггеры" (второго порядка)
...
но часто нужны "связанные таблицы", "обобщенные таблицы", "обобщенные триггеры", "связанные триггеры" (нного порядка)
вопрос - можно ли придумать структурные элементы, которые были бы адекватны для любых порядков обобщения с единой семантикой в любом пордяке?
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101567
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Вы постановщики в цепи постановщиков

Именно, Сахават, именно. Вот поэтому - очень осторожная регистрация только фактов. И очень придирчивый анализ того, что можно считать фактом.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101569
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

аваще вопрс интересны
вот есть "таблица", "внешний ключ" и "триггер"
с помощью этого триплета можно много чего делать
но часто нужны "связанные таблицы", "обобщенные таблицы", "обобщенные триггеры", "связанные триггеры" (первого порядка)
но часто нужны "связанные таблицы", "обобщенные таблицы", "обобщенные триггеры", "связанные триггеры" (второго порядка)
...
но часто нужны "связанные таблицы", "обобщенные таблицы", "обобщенные триггеры", "связанные триггеры" (нного порядка)
вопрос - можно ли придумать структурные элементы, которые были бы адекватны для любых порядков обобщения с единой семантикой в любом пордяке?
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101571
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621,

фактов, или ссылкок на правил генерации фактов (Функций (версия и т.д.), Аргументы)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101576
NetObserver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитал ветку, улыбнулся . Если отбросить комментарии "сам дурак", то проблема устаревших данных, или как здесь говорят "мусора", существует в нескольких разрезах:
1)Проблема пользователя - перегрузка устаревшими данными списков\справочников\локапов и т.п.
2)Проблема программиста - как правильно здесь замечено, повседневно используется ~5-10% данных базы, остальное - неактуальные данные. Если система написана без учета роста этих данных, и использует их в выборках - получаем тормоза, недовольство пользователей и начальства.

Предлагаемые здесь методы решение проблем:
А)Разрешить пользователям удалять(безвозвратно) данные. В первую очередь из справочников.
К чему это ведет:
+ решается проблема 1), точнее перекладывается на пользователей
+ частично решается проблема 2), база та все равно растет

- Возникают другие проблемы
3)Проблема Бизнеса - отчеты за прошлые периоды не полны или вообще неправильны.
4)Проблема Пользователей - удалили актуальные данные.

Дальше идет решение уже новых проблем:
переписывание отчетов (INNER JOIN -> LEFT JOIN, все обрамляется ISNULL и т.п.)
денормализация базы (смотри ветку выше - перенос названия товара из справочника в заказ и т.д)


Б)Ввод логического удаления - флаг "не активен\удален" для элементов справочников.
Это решает проблему 1), но не решает проблему 2)
Решение проблемы 2) - глубокая оптимизация, вещь трудозатратная, неблагодарная, трудно-объяснимая для начальства\бизнеса.


В)Удаление логически связанных данных.
Обычно удаляют данные за период - документы\ордера\сделки\заказы\..., но можно удалить и элементы справочников на которые больше нет ссылок.
Решается проблема 2) и частично проблема 1), тех же клиентов\контрагентов как-то не принято удалять даже если он "умер".
Может встретить противодействие начальства - "че за х..? а вдруг нам отчет за 2002 надо построить?"

Г)Вариант с Б) + В) - логическое удаление + периодическая чистка базы.
На мой взгляд наиболее оптимальный, хотя и более трудозатратный вариант.

Вот как-то так!
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101579
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> фактов, или ссылкок на правил генерации фактов (Функций (версия и т.д.), Аргументы)

Не-не-не, только на факты. Факт - вещь по определению неизменяемая. А вот правила генерации уже могут меняться, т. е. ссылка приобретает вид (правило, версия правила). Оверхед.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101587
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NetObserver,

первый вменяемый пост.

Всё верно, с точки зрения проблемы мусора в БД. Соглашусь.

Я написал первый пост несколько из других соображений, а именно из необходимости абстрагировать заказ от других сущностей в БД. Не вижу принципиальной разницы между "названием" и "ценой" товара. И то и другое - суть атрибуты, имеющие свойство меняться со временем (например исправление опечаток в названии или сознательное отстраивание от названия конкурента - видел и такое).

Почему тогда копирование цены в заказ - не вызывает вопросов, по сравнению с названием?

Банально: нет копирования, есть только ссылка на каталог. Что имеем:
состояние 1: выписка заказа по первоначальному названию. Отправка заказа клиенту.
состояние 2: изменение названия. -> автоизменение содержимого заказа на новое название (проблема таже что и с ценой!)...
состояние 3,4: отгрузка товара по новому названию и отправка накладной с новым товаром

... в итоге получаем рекламацию: пересортица при поставке!

и вот на такую пересортицу я в своей практике - реально натыкался!
строка заказа (за точность номера железки не ручаюсь):
HUB 3COM-15712-ME 10шт.

строка счет-фактуры и накладной на следующий день (это реальная ситуация)

SWITCH 3COM-15712-ME 10шт.

реакция получателя (почта, наложенный платеж, оплата доставки продавцом): это не тот товар, который был закуплен. Верните продавцу обратно.

... и попробуйте доказать клиенту, что он теперь должен оплатить двойную доставку, поскольку отказ по его вине (это же тотже товар, только переименован!)... :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101597
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

никто никаких цен никуда не "копирует"
"Цена" в "Заказе" - соглашение чо такой то товар по такой то цене именно в в этом заказе имеенно между этими сторонами заказа достигнуто
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101601
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621,

есть такая теория, что невозможно все факты хранить (вселенная меньше объема информации о ней)
а вот теории что все факты низзя генерить одним генератором нету :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101602
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

ну да... именно на это наименование именно этого товару... :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101603
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> никто никаких цен никуда не "копирует"

Это тупиковый путь, Сахават. Человеку не разницу между акцептом оферты и соглашением о намерениях нужно объяснять, а рассказывать все с самого начала.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101604
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> есть такая теория, что невозможно все факты хранить

А все и не нужно.

А еще есть теория, что окружающий мир - качественный симулятор. Ссылаясь на правила, вы еще и неявно ссылаетесь на ошибки генератора. Вопрос, что хуже - кривой факт или кривой генератор - сложный вопрос. Но - как факт - с кривыми фактами бороться проще.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101607
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621,

все жертвы несвоевременного аборта, тут нифига не поделаешь
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101624
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Я написал первый пост несколько из других соображений, а именно из необходимости абстрагировать заказ от других сущностей в БД. Не вижу принципиальной разницы между "названием" и "ценой" товара. И то и другое - суть атрибуты, имеющие свойство меняться со временем (например исправление опечаток в названии или сознательное отстраивание от названия конкурента - видел и такое).

Почему тогда копирование цены в заказ - не вызывает вопросов, по сравнению с названием?

Банально: нет копирования, есть только ссылка на каталог. Что имеем:
состояние 1: выписка заказа по первоначальному названию. Отправка заказа клиенту.
состояние 2: изменение названия. -> автоизменение содержимого заказа на новое название (проблема таже что и с ценой!)...
состояние 3,4: отгрузка товара по новому названию и отправка накладной с новым товаром

... в итоге получаем рекламацию: пересортица при поставке!Выглядит абсурдом. Какое то автоизменение цены, названия :-)

Независимо от того, изменилось назвыание товара или нет, отгружен будет именно тот товар, который привязан к заказу. Не по названиям же кладовщик отгружает :-)

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

Оба аттрибута товара - название и цена - для заказа и всех процессов совершенно бесполезны, не имеют ровно никакого значения.
Но цена сохраняется, как я уже сказал, для получения статистик, название товара, конечено, можно тоже сохранять для этих целей, но в жизни я таких целей не встречал.
Arhat109и вот на такую пересортицу я в своей практике - реально натыкался!
строка заказа (за точность номера железки не ручаюсь):
HUB 3COM-15712-ME 10шт.

строка счет-фактуры и накладной на следующий день (это реальная ситуация)

SWITCH 3COM-15712-ME 10шт.

реакция получателя (почта, наложенный платеж, оплата доставки продавцом): это не тот товар, который был закуплен. Верните продавцу обратно.Это не пересортица.
Счёт-фактура или накладная - это не заказ, это отпечатанные документы, их понятно нужно сохранять полностью, само собой.
NetObserverРешение проблемы 2) - глубокая оптимизация, вещь трудозатратная, неблагодарная, трудно-объяснимая для начальства\бизнеса.Да не глубокая оптимизация, а правильное место роста рук :-)

Прямо так страшно, "глубокая оптимизация", и с придыханием "целых десять тыщь товаров!!!"

Что это за программисты, если у них на 10К записей тормоза? ну и понятно, что тогда варианты В) и Г) для них полностью недоступны.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101626
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgArhat109MasterZiv, данные - они всего лишь данные. И когда они больше не нужны БЛ, их можно (иногда и нужно, и даже необходимо) удалять из БД. Другой вопрос "когда и как"... можно и логически, можно и путем добавления признака "активная запись", можно и путем переноса в архивное хранилище, можно и ... конкретное применение - сильно зависит от задачи.Я понимаю вашу позицию и целиком поддерживаю.
Только сейчас мы ведём речь о тех данных, которые нужны в БД.
ТС ясно сказал - ему нужны данные о заказах и о товарах, которые включены в этот заказ.
Это Ваша вольная интерпретация того, что сказал автор темы))
Его предложение
"Товар удалили, в результате в таблице заказов остался идентификатор, который ссылается на несуществующий товар."
точно также можно интерпретировать как необходимость удаления товаров))
alexeyvgОбсуждать, как правильно удалить эти товары из базы в таком контексте глупо.
)))
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101636
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosБредятина,
аваще вопрс интересны
вот есть "таблица", "внешний ключ" и "триггер"
с помощью этого триплета можно много чего делать
Некорректно как-то. "внешний ключ" завис в воздухе, что только лишний раз подчеркивает проблемы "ключей"))
На самом деле, есть два типа сущностей связь между ними и множество триггеров (до и после создания, обновления, удаления экземпляров обоих типов сущностей, до и после создания, удаления связи).
Разумеется. можно много чего делать.
ViPRosно часто нужны "связанные таблицы", "обобщенные таблицы", "обобщенные триггеры", "связанные триггеры" (первого порядка)
Не следовало задвигать интересную тему в ответ на мой вопрос о маппинге, который очевидным образом приводил к EAV вместо РМД))
Теперь что, с нуля начинать рассуждения о макротипах и классификаторах???
Хорошо, приводите пример "связанных типов сущности", "обобщенных типов сущности" (это нам уже неплохо известно), "обобщенных триггеров", "связанных триггеров" (это нам, пока, не известно).
Сразу уж и первого и второго, и n-го порядков...
ViPRosвопрос - можно ли придумать структурные элементы, которые были бы адекватны для любых порядков обобщения с единой семантикой в любом порядке?
Разве макротипы не решают вопрос???
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101644
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgВыглядит абсурдом. Какое то автоизменение цены, названия :-)
Первый пост ТС (флудерасты постарались уже и тут): в таблице заказов хранятся идентификаторы купленных товаров

... и только. К чему ЭТО может привести - показал на примере, который вы раздербанили на две части... зачем-то. Это простое следствие хранения ссылки в заказе вместо наименования товара. Один документ печатается (отправляется) ДО изменения, а другой ПОСЛЕ... тока и всего.

alexeyvgНезависимо от того, изменилось название товара или нет, отгружен будет именно тот товар, который привязан к заказу. Не по названиям же кладовщик отгружает :-)

... Вы точно так уверены?!? Ещё и не так "отгружают"... бегает иной кладовщик по складу с бымажкой и крыжит чего он в коробку поскидал... и понять не может хде теперь этот switch искать надо. На складе одни только hub-ы. А то ещё и просто громко так орет в офис: "Вася, эт чего такое? Скока?"....

alexeyvgСохранение каталожной цены товара в момент продажи может быть полезно для неких статистических расчётов, но к самим бизнес-процессам не имеет ровно никакого отношения, так же, как и название товара.

Перенос каталожной цены в заказ происходит "сплошь и рядом" в любом интернет магазине не в момент "продажи", а в момент принятия покупателем оферты и создания в БД сущности "заказ". И вот ежели тут каталожное наименование не копируется, а в заказ втыкается тока ссылка на каталожное наименование - получаем ту самую пересортицу "автоматически". В момент выписки покупатель получит документ с одним наименованием, а в момент доставки - документы с другим. Или надо городить отдельный огород по учету, что с этим наименованием УЖЕ есть заказы а с этим ЕЩЁ нет... или огород с архивированием, "ведением истории", не удалением, не исправлением и т.д. (кто во что горазд из-за неумения работать с данными)

alexeyvgОба аттрибута товара - название и цена - для заказа и всех процессов совершенно бесполезны, не имеют ровно никакого значения.

интересный подход... и нафига их тогда вообще хранить?!? Да и проектировать чего-то... возьмите 1С, Галактику, бесплатную cms на бедность... этот раздел - можно и совсем закрыть... всё уже давно придумано и нормально спроектировано. И даже, неповерите - реализовано. :)

alexeyvgЭто не пересортица. Счёт-фактура или накладная - это не заказ, это отпечатанные документы, их понятно нужно сохранять полностью, само собой.

?!? Как клиенту доказываете что ЭТО не пересортица? В предварительном заказе (счете) - одно наименование, по факту поставки (в документах) - другое.

Да и, заодно, расскажите КАК вы будете печатать документы на отправку со старым наименованием (с которым заключен договор, выписан счет ранее и т.д.), если у Вас в БД только ссылка на каталожный товар, который ПЕРЕИМЕНОВАН? (смотрите первый пост)

Не, можно не заморачиваться (это же требует квалификации как тут уже написали). Просто запретить правку и удаление.
Ошибся? Поставщик переименовал позицию? Для сеошника так удобнее? Заведи ещё один товар, а этот отметь как неактивный... да и фиг с ним ... эт-та, мусором. :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101646
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаРазве макротипы не решают вопрос???
скорее нет, макротипы - промежуточный порядок
почему?
потому что я не умею построить макротип из макротипов (вернее, смысла в этом нету, так как тогда можно было бы остановиться и на типе, как базовый иммутейбл кирпичик, т.е. нет механизма генерации следующего порядка структурного обобщения), не знаю что означает связь между двумя макротипами
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101652
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денормализация (создание не вычисляемых, а именно хранимых свойств, значения которых извлекаются из других свойств) - объективно необходимая процедура во многих задачах. Но она ортогональна необходимости поддержки связей между типами сущностей.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101653
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosБредятинаРазве макротипы не решают вопрос???
скорее нет, макротипы - промежуточный порядок
почему?
потому что я не умею построить макротип из макротипов (вернее, смысла в этом нету, так как тогда можно было бы остановиться и на типе, как базовый иммутейбл кирпичик, т.е. нет механизма генерации следующего порядка структурного обобщения), не знаю что означает связь между двумя макротипами
Именно поэтому я и утверждал, что это просто схемы данных (включающие взаимосвязанные типы сущностей), которые сами пользователи могут насоздавать по своему желанию сколько угодно. Ведь нет операции создания экземпляра макротипа, связывания макротипа с другим макротипом (или просто типом сущности).
Значит, речь идет не о макротипе.
Тогда остается отношение. И реляционное замыкание)))
То есть, опять "нет проблем")))
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101654
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

вопрос структурной неизменчивости меня мучает
я незнаю что такое обобщение макротипов, что такое связанные макротипы
а _мод знает
у него все неизменчиво- объекты и значит вся методология работает всегда
а я ввел просто еще один уровень обобщения
как то так
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101657
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я и ввел схемы
токо мои схемы не разбивающие (как в мсскл допустим), а любая именованная подсхема общей схемы с пересечениями
теперь получили новое пространство - пространство подсхем, тут своя алгебра
и эта алгебра включает в себя как частный случай алгебру типов и связей
но конечная ли эта алгебра?
как все это обобщить?
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101661
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosБредятина,
вопрос структурной неизменчивости меня мучает
я незнаю что такое обобщение макротипов, что такое связанные макротипы
а _мод знает
у него все неизменчиво- объекты и значит вся методология работает всегда
а я ввел просто еще один уровень обобщения
как то так
Странное впечатление на Вас произвели множественные ссылки (в отличие от Ваших единичных) и встроенные типы сущностей. Проблемы несимметричного доступа хорошо известны.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101663
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosну я и ввел схемы
токо мои схемы не разбивающие (как в мсскл допустим), а любая именованная подсхема общей схемы с пересечениями
теперь получили новое пространство - пространство подсхем, тут своя алгебра
и эта алгебра включает в себя как частный случай алгебру типов и связей
но конечная ли эта алгебра?
как все это обобщить?
Тип сущности может входить во множество схем, это же очевидно...
Результатом запроса к БД концептуально является именно схема (часть БД со всей присущей БД семантикой).
Чего тут обобщать-то?))
Вывод новых знаний из существующих (и автоматическая генерация новых типов сущностей, связей между ними и макротипов на основе существующих)??? Это задача автора темы, связывающего заказы с товарами?))
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101668
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаРезультатом запроса к БД концептуально является именно схема (часть БД со всей присущей БД семантикой).

ну тады макротипы наше усе
а заказы - при чем тут заказы, главное приход в банковсой выписке
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101676
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosБредятинаРезультатом запроса к БД концептуально является именно схема (часть БД со всей присущей БД семантикой).

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

ТС сказал, что заказы хранят ссылки на товары. Причём он считает ошибкой то, что товары "несуществующие", то есть бизнес-процесс фирмы предполагает, что эти заказы нужны, причём с их содержимым, то есть ТС не устраивает, что от товаров ссылки ведут в "никуда".

Вот я и говорю, что для бизнеса фирмы информация о товарах в заказе важна, разве это неправильная интерпретация описания проблемы??? Как ещё можно сказать?
Бредятина"Товар удалили, в результате в таблице заказов остался идентификатор, который ссылается на несуществующий товар."
точно также можно интерпретировать как необходимость удаления товаров))Естественно нельзя.

Если бы текст был такой - "бизнес-процесс компании предполагает, что после удаления товара со склада не должно быть возможности получить информацию о том, что этот товар был в заказе, заказы отгружатся без исчезнувших позиций", то тогда правильно.
А пока я вообще не вижу каких то требований удаления информации о товарах.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101692
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgБредятинапропущено...

Это Ваша вольная интерпретация того, что сказал автор темы))
Его предложение
"Товар удалили, в результате в таблице заказов остался идентификатор, который ссылается на несуществующий товар."
точно также можно интерпретировать как необходимость удаления товаров))А ваша какая интерпретация?

ТС сказал, что заказы хранят ссылки на товары. Причём он считает ошибкой то, что товары "несуществующие", то есть бизнес-процесс фирмы предполагает, что эти заказы нужны, причём с их содержимым, то есть ТС не устраивает, что от товаров ссылки ведут в "никуда".

Вот я и говорю, что для бизнеса фирмы информация о товарах в заказе важна, разве это неправильная интерпретация описания проблемы??? Как ещё можно сказать?
Бредятина"Товар удалили, в результате в таблице заказов остался идентификатор, который ссылается на несуществующий товар."
точно также можно интерпретировать как необходимость удаления товаров))Естественно нельзя.

Если бы текст был такой - "бизнес-процесс компании предполагает, что после удаления товара со склада не должно быть возможности получить информацию о том, что этот товар был в заказе, заказы отгружатся без исчезнувших позиций", то тогда правильно.
А пока я вообще не вижу каких то требований удаления информации о товарах.
Вы просто теперь менее категорично объясняете свою первоначальную категоричность))
Это хорошо. Но только в заказ, как Вам уже объяснили необходимые значения свойств товара итак перенесены)). И в своем первом сообщении я довольно подробно объяснил обе ситуации. А точнее все три. И почему связь нужна, и почему связи может и не быть, и почему тема себя уже давно исчерпала.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101697
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

да назови как хочешь
протсо схема БД в каждом СУБД означет разные вещи (а на уровне МД я не видел схему (у Мартина были)), а макротип именно - типы + связи незавивсимо от СУБД
т.е. макротип примитив МД
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101708
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosБредятина,
да назови как хочешь
протсо схема БД в каждом СУБД означет разные вещи (а на уровне МД я не видел схему (у Мартина были)), а макротип именно - типы + связи незавивсимо от СУБД
т.е. макротип примитив МД
А я использовал понятие схемы (взаимосвязанные типы сущностей) еще до того, как его стали использовать не по назначению в системах хранения и обработки данных (это, конечно, не СУБД, так как они не поддерживают интерактивный интерфейс пользователя на основе логической МД).
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101737
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаViPRosБредятина,
да назови как хочешь
протсо схема БД в каждом СУБД означет разные вещи (а на уровне МД я не видел схему (у Мартина были)), а макротип именно - типы + связи незавивсимо от СУБД
т.е. макротип примитив МД
А я использовал понятие схемы (взаимосвязанные типы сущностей) еще до того, как его стали использовать не по назначению в системах хранения и обработки данных (это, конечно, не СУБД, так как они не поддерживают интерактивный интерфейс пользователя на основе логической МД).
ок, значит с меня бутылка

итак
БД = Схема
любая подсхема тоже схема
типы сущности тоже схемы (ну, предельный случай, без связей)

надо ввести алгебру схем
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101742
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosБредятинапропущено...

А я использовал понятие схемы (взаимосвязанные типы сущностей) еще до того, как его стали использовать не по назначению в системах хранения и обработки данных (это, конечно, не СУБД, так как они не поддерживают интерактивный интерфейс пользователя на основе логической МД).
ок, значит с меня бутылка

итак
БД = Схема
любая подсхема тоже схема
типы сущности тоже схемы (ну, предельный случай, без связей)

надо ввести алгебру схем
Противоречие:
"ну, предельный случай, без связей" и "надо ввести алгебру схем"))
Я уже объяснял почему алгебра не так важна, как кажется на первый взгляд, когда показывал бесполезность SQL. Это, во-первых. А во-вторых, опять приходим к вопросу генерации новых знаний??? Предположим, по аналогии с реляционным замыканием мы имеем "схемное замыкание". Зачем?
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101745
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

надо
низзя работать все время на нижнем уровне
получается что аналитик должен знать все базовые законы, когда нужны только обобщеные
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101749
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я не хочу, что бы чек, которрый моделирует микрорайон из домов, школ, больниц,... , нуждался в методологии построении домов, школ, больниц
ну как пример
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101750
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosБредятина,
надо
низзя работать все время на нижнем уровне
получается что аналитик должен знать все базовые законы, когда нужны только обобщеные
Это неубедительная философия. Должен быть генератор отчетов (часть интерактивного интерфейса, предоставляемого СУБД), который "обязан" предоставлять любому аналитику "любые обобщенные данные", в "привычном" виде (например, в виде таблицы). И какое имеет значение как он это делает??? Что "надо"???
С другой стороны, что значит "на нижнем уровне". Это, все-таки, концептуальная модель (она же логическая). То есть, именно так и надо "аналитикам"))
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101752
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosя не хочу, что бы чек, которрый моделирует микрорайон из домов, школ, больниц,... , нуждался в методологии построении домов, школ, больниц
ну как пример
И причем здесь "алгебра схем"?))
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101759
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

вощем динозавр ты
блин БД это просто кирпичик
а строить надо дома, города
при этом манипулировать городами планетами
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101765
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosБредятина,
вощем динозавр ты
блин БД это просто кирпичик
а строить надо дома, города
при этом манипулировать городами планетами
Ну, вот это другое дело! Сразу все понятно. Дом из БД намного комфортнее, чем из дерева. С этим я не спорю.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101772
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

угу
а ты как амЁба на поверхности одномерной
расправь крыля!!!!!
мир многомерен
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101774
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosБредятина,
угу
а ты как амЁба на поверхности одномерной
расправь крыля!!!!!
мир многомерен
Вот про mumps мне не стоит рассказывать))) Большинство Ваших проблем как раз и связаны с реализацией ВИПРОС в неподходящей технологической среде))) Просто не повезло немного с информацией из окружающего мира, возможно, даже с другой планеты)))
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38101784
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

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

О! Снесли. Ура, тут все-таки, есть модераторы...

На поставленные вопросы, в рамках такого проектирования (ссылка на каталожный товар в заказе) - ответов, я как понимаю, от Вас не будет?
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38102320
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109alexeyvg,

О! Снесли. Ура, тут все-таки, есть модераторы...

На поставленные вопросы, в рамках такого проектирования (ссылка на каталожный товар в заказе) - ответов, я как понимаю, от Вас не будет?

А Вы еще спросите, что делать, если конкретный Вася Пупкин просит, чтобы товар в счете был как-то особо обозван. Что ему отвечать? "Идите на хер, Василий?"
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38102327
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Author the new one,

а содержательно ответить - религия не позволила? :)

Вы первый пост ТС - читали?
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38102330
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

В смысле "содержательно"? Мне интересна та камасутра, которую ваши оппоненты вынуждены будут устроить в рамках предлагаемой ими модели. Ну вот такой я извращенный вуайерист.

И читал я, кстати, не только первый пост:-)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38102377
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денормализация (в данном случае, создание для некоторого типа сущности не вычисляемых, а именно хранимых свойств, значения которых извлекаются из свойств других типов сущностей) - объективно необходимая процедура во многих задачах. Но она ортогональна необходимости поддержки связей между типами сущностей.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38102475
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Author the new one,

Да, мне уже тоже интересно посмеяться. В рамках изложенной модели (заказ содержит только ссылку на товар, копирование наименования - зло), возможно несколько вариантов "камасутры" (...хотя, "а вдруг"):

1. Запретить редактирование наименований... по-вашему, "идите нахер Василий"... не комильфо. Даже не прошлый век... позапрошлый, пожалуй. Разве что для студентов. :)

2. Запретить редактирование тайно и вежливо... добавляем признак актуальности записи и вместо редактирования, деактивируем старую запись добавляя новую втихаря...

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

3. Использовать "историю изменений" (она для других целей нужна, но почему бы микроскопом и гвозди не заколачивать заодно?!?). Как? У вас до сих пор нет истории изменений?!? ... надо "всего лишь" в коде работающем с заказами (везде) учесть, что параметры товара можно брать из истории за соответствующую дату... Этак можно и цену в заказ не пихать... опять же экономия пары байт, зато для каждой позиции заказов. Каталог товаров нафига?!? Да это так, базовый справочник... "история", пардон версионность параметров - вот главное.

тоже полезно:
а) ничего никуда не пропадает. Пухнет и тормозит (поиск по LIKE)... опять же здоровое обоснование Заказчику почему его сервак давно надо выкинуть на помойку и купить стойку или арендовать какой-нить дата-центр целиком "у нас там и скидочка есть" (и процент за привлечение клиентов);
б) возможность "бесконечного отката взад"... подать как необходимое достоинство.
в) показать "экономию" средств Заказчика - повторное использование таблицы истории параметров товара (кодить все равно надо... но это он позже поймет).
Лох должен платить.

Давайте смеяться, ждем варианты (запасся попкорном)... :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38102517
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

когда ты грил про свяи и т.д., вроде почти адекватен был
а тут лажа полная
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38102525
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109alexeyvg,

О! Снесли. Ура, тут все-таки, есть модераторы...

На поставленные вопросы, в рамках такого проектирования (ссылка на каталожный товар в заказе) - ответов, я как понимаю, от Вас не будет?Ну, снесли и мои посты...
Arhat109alexeyvgНезависимо от того, изменилось название товара или нет, отгружен будет именно тот товар, который привязан к заказу. Не по названиям же кладовщик отгружает :-)

... Вы точно так уверены?!? Ещё и не так "отгружают"... бегает иной кладовщик по складу с бымажкой и крыжит чего он в коробку поскидал... и понять не может хде теперь этот switch искать надо. На складе одни только hub-ы. А то ещё и просто громко так орет в офис: "Вася, эт чего такое? Скока?"....Уверен.

Товарный справочник то как раз поддерживается правильным, + в для товара есть некие идентификаторы, артикулы, так что если и были изменения в каталоге, то как раз на правильные. Ищут вначале по названиям, потом сверяют остальное.

В любом случае искать по неправильным вариантам названий - плохая идея.

Arhat109?!? Как клиенту доказываете что ЭТО не пересортица? В предварительном заказе (счете) - одно наименование, по факту поставки (в документах) - другое.Дык зачем делать документы с раными названиями?
Arhat109Да и, заодно, расскажите КАК вы будете печатать документы на отправку со старым наименованием (с которым заключен договор, выписан счет ранее и т.д.), если у Вас в БД только ссылка на каталожный товар, который ПЕРЕИМЕНОВАН? (смотрите первый пост)Понимаете, это всё абсурдная постановка в целом.

Чего вы хотите добиться, просто источником всех данных о товаре сделать не запись в товарном справочнике, а запись в позиции заказа? Вообще для всех документов?

Я не понимаю цель мухлежа с названиями, это же всё равно вскроется - всё равно к клиенту придёт товар, на котором будет другое название, нежели то, которое заботливо сохранено в специально предназначенных для этого полях в заказе.
А всякие артикулы и прочее тоже сохранять? Если они были вбиты неправильно, то пусть так неправильно и проходят по документам, авось клиент не заметит при получении? А кладовщик пусть ищет непонятно по каким критериям, раз название и артикулы не соответствуют?

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

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

alexeyvgУверен.

Товарный справочник то как раз поддерживается правильным, + в для товара есть некие идентификаторы, артикулы, так что если и были изменения в каталоге, то как раз на правильные. Ищут вначале по названиям, потом сверяют остальное.

В любом случае искать по неправильным вариантам названий - плохая идея.

Что значит "по неправильным"? Вы же прекрасно всё поняли, ситуация в вашем варианте проектирования - крива изначально, а именно:
1. Пришел товар, его поставили на склад по накладной (HUB 3COM...), соответственно сделали пометку на полочке/коробке/поддоне (бумажку напечатали из БД и приклеили)... с названием а то и только его частью, если склад невелик (возможно и с артикулом, возможно и в БД зафиксили полку, место и т.д).
2. Покупатель выписал себе 10 штук. Получил счет с названием "HUB 3COM..." (оно пока ещё - правильное ведь, не так ли?)
3. Пришел новый прайс от поставщика, в котором значится вместо HUB... -> "SWITCH 3COM..." . Может даже кто и созвонился с поставщиком, может ему и объяснили, что да, типа это оно же... номер изделия - тот же (17512-ME)... мож у них там кто ошибся, да исправвили... всяко бывает.
4. Поправили у себя в БД, а именно в каталоге товаров поле наименование...

... а теперь, внимательно следите за вашими руками (точнее за поведением БД из вашего подхода - у вас далее тока ссылки на каталог, в котором название изменено!):

5. Пришла оплата и надо отгружать товар. Печатаем товарно-транспортную накладную (название по ссылке автоматически вылезает ... ага новенькое switch это а не хаб)
6. вручаем её в отгрузку кладовщику и ... упс. На полке/контейнере/поддоне - указано HUB.
7. ... и орёт он, бедненький через всю Москву Васе в офис "хде эт-та"?!? Тут с этими координатами (фиксили же в БД!) тока хабы лежат! Мож полку попутали? Чё? о-н-о же?... ладно, пока."
8. погрузил, воткнул эту( а другую УЖЕ не напечатать!) ТТН в коробку и отправил.
9. пришел покупатель на почту... а там в ТТН ... упс. switch. А он - не последний покупатель и у него в договоре на монтаж уже хабы прописаны... нафига ему этот гемморой с вашей БД?!?
10. получаем рекламацию на пересортицу и возврат товара и оплату доставки и ... кто оплачивать будет?

варианты:
1. Снабженец, который поправил наименование ("иди нахрен Василий")
2. Менеджер пискнувший что "оно же"
3. Проектировщик БД, который догматично слушал студентов или роспильщиков.

alexeyvgДык зачем делать документы с раными названиями? ... Понимаете, это всё абсурдная постановка в целом.

это вы у своей таблички с заказами со ссылками на товар спросите.

... и так. Повторять вопросы - не буду. Дайте всё таки на них внятный ответ, вместо деланья вида, что "всё нормально".

... часть вторая, попкорн ещё есть. :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38102560
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos, не увиливайте. Вы с Бредятиной очень качетсвенно тему флудили... почему свой вариант поведения заказов со ссылками не выкладываете? :)

P.S. в той теме, между прочим, Вам Бредятина задал вопросы, на которые Вы отвечать тоже не стали... статистика - забавлять начинает. Это метод?
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38102581
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

Ну и что вы тут расписали? Этот же вариант точно в таком же виже возможен, если названия хранятся в других таблицах, а не в товарном справочнике, только в этом случае ситуацию так просто уже не поправить.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38102601
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109ViPRos, не увиливайте. Вы с Бредятиной очень качетсвенно тему флудили... почему свой вариант поведения заказов со ссылками не выкладываете? :)

P.S. в той теме, между прочим, Вам Бредятина задал вопросы, на которые Вы отвечать тоже не стали... статистика - забавлять начинает. Это метод?
от чего увиливать то?
иди изучи что такое МДМ, золотые записи, синхронизация многосторонная и т.д.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38102606
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бред получл ответы на все вопросы
просто иногда он не вопрос задает, а типа предлагает, но ВИПРОС уже написана и я не могу все переделать так быстро даже если он че то и по делу советует
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38102622
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денормализация (в данном случае, создание для некоторого типа сущности не вычисляемых, а именно хранимых свойств, значения которых извлекаются из свойств других типов сущностей) - объективно необходимая процедура во многих задачах. Но она ортогональна необходимости поддержки связей между типами сущностей.

Поэтому, и мнение Бэйта:
"таблицы товаров и заказов не должны быть связаны."
и мнение Стоундрейкера:
"и не должно там (в заказах) быть никаких "идентификаторов""
Не вполне корректны.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38102644
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

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

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

:) :) :) Нет, не возможен. :)

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

С его двумя табличками, а других в первом посту нет... и не надо городить огород из "историй", "master data management" и чего ишо
, оправдываясь тем что "данные из БД никогда не удаляются". Удаляются, ещё как! Тока "свист винтов" стоит... не надо принимать всё на Веру (она, все-таки женщина и хрупкая)...

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

... а всё, что относится к содержимому "первичный документ" - должно копироваться из всех справочников в него. Иначе, не с ценой, так с наименованием, не с ним, так с чем-то ещё - получите ту же самую фигню ... или городите эти огороды для каждой курсовой.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38102666
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosArhat109ViPRos, не увиливайте. Вы с Бредятиной очень качетсвенно тему флудили... почему свой вариант поведения заказов со ссылками не выкладываете? :)

P.S. в той теме, между прочим, Вам Бредятина задал вопросы, на которые Вы отвечать тоже не стали... статистика - забавлять начинает. Это метод?
от чего увиливать то?
иди изучи что такое МДМ, золотые записи, синхронизация многосторонная и т.д.

"Фи, хамишь парниша" (с) Эллочка-людоедка (Ильф,Петров). (тут мне это уже не удивительно).

1. Где Вы нашли вопросы многосторонней репликации (все-таки наверное, да?) в первом посту ТС? Найдете, хотя бы одно общее слово в определении приведенных Вами терминов и первого поста ТС - сниму шапку и извинюсь (за исключением таблица, идентификатор, ссылается)

2. Отсылать оппонента "чего-то учить" кидаясь терминами (да ещё и достаточно специализированными) - не совсем вежливо ко всем читателям этой темы, не находите?

P.S. Я был о Вас лучшего мнения. Увы... кроме флуда в этой теме - ни одного полезного поста.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38102669
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

таки сделаю исключение из своего же правила (сам придумал, сам исключил :)

Да, так оно и есть. Это поперпендикулярные задачи.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38102682
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

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

я и не обижаюсь (разве что попкорн кончился). Я давно ТАК не смеялся. :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38102693
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

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

Пасибки. Москва, все-таки забавная деревня... :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38102835
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я таки хочу присоединиться к смеющимся над Arhat109-м...
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38102890
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arhat109И, также как и цену, наименование товара - ТС-у, крайне желательно, тупо копировать в заказ. И, для дальнейшей работы брать то, что сохранено в первичном документе , а не в каком-то мифическом справочнике.
Простенькая задачка: вычислить доход от продажи товара Х за период
Ответ: товар - это объект, имеющий свои св-ва, возможно изменяемые во времени
Заказ (накладная и т.д) - тоже объект, имеющий своим св-м объект Товар
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38102997
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод,

подсказка в первом посту ТС: "табличка проданные товары"... :)

тут была здравая мысля от MasterZiv (тоже подсказка) "ведение прайс-листов"... :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103009
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод, в конфигурации таблиц ТС - последнее предложение - верно, но именно оно и приводит к проблемам. Перечитайте мои посты и то что пишет тут ЧАЛ. Товар в накладной и товар в каталоге (прайс-листе) - это разные объекты БД. Смешивание понятий (видимо из-за отсутствия Связей), возможно и приводит к путанице.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103075
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arhat109Товар в накладной и товар в каталоге (прайс-листе) - это разные объекты БД.
Повторяю еще раз: Товар -объект, прайс-лист -объект, имеющий св-во объект Товар, аналогично накладная. Все ваши проблемы надуманы, их просто нет.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103095
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109
2. Запретить редактирование тайно и вежливо... добавляем признак актуальности записи и вместо редактирования, деактивируем старую запись добавляя новую втихаря...

Не взлетит - если для конкретно Древлеваси Пупкина мы написали, что он покупает не switch, но Концентраторъ сѣтевой , то мы должны при сохранении документа а)сохранить новую версию товара с наименованием " Концентраторъ сѣтевой " и б)сохранить ЕЩЕ одну новую версию товара со старым наименованием switch. Почему еще одну? Потому что, как мне кажется, если уж пошел по этим граблям, то разумнее держать историю названий ("как мы называли свитчи в разное время"), а не просто беспорядочную кучу; что еще интереснее, если все-таки держать беспорядочную кучу, то получается какой-то неопрятный вариант, от которого так размашисто открещиваются.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103120
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Author the new one,

И вдогонку - при добавлении документа товар надо сначала лочить for update, ибо как бы наш второй новый товар не прибил отредактированный кем-то только что.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103322
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Author the new one,

верно всё. И в результате, советуем ТС-у делать полноценную историю изменений... правильно. Надо же как-то зарабатывать. :)

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

:) нет, рано попкорн кончился... :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103354
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arhat109И в результате, советуем ТС-у делать полноценную историю изменений... правильно. Надо же как-то зарабатывать. :)
А ее по любому надо делать, как универсальный механизм для всех типов объектов
зы ваш подход - это полное отрицание самого принципа БД - назад к плоским файлам - флаг в руки, барабан на шею
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103387
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод,

Да ладно сочинять-то! Вы "полное отрицание" каких-то там "принципов" где нашли? :)

P.S. вот сколько фантазёров ни спрашивай - ведь ни разу не показали ещё на источник... "своих не выдаем"! :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103399
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109P.S. вот сколько фантазёров ни спрашивай - ведь ни разу не показали ещё на источник... "своих не выдаем"! :)

Значительно интереснее, что, тем временем, ни разу не было предложено решения ни с редактированием, ни с нетрадиционным покупателем.
Очень, знаете, это все напоминает консилиум у одра Буратино.

А.Толстой-- Шшшарлатанство, -- сказала Сова, взмахнула мягкими крыльями и улетела на темный чердак.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103407
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какой толстый тролль...
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103420
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Author the new one,

потому и пошел за попкорном. :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103432
Жоао
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arhat109... вместо того чтобы понять(всего лишь!) что товар в каталоге и (проданный) товар в заказе - это … две отдельные Сущности со своими Связями... и все дальнейшие "расчеты"/"статистика продаж"/etc (можно подчеркнуть всё) ведется с табличкой проданных товаров (можно даже отдельно держать)... ну ни причем там (в заказе) ссылка на прайсовую позицию, пардон на исходный каталог товаров...
А теперь представьте себе реальный мир:
Вы купили 16 одинаковых предметов в двух партиях по 8 штук у разных поставщиков, у первого в документах предмет зовется switch, у второго — hub. А у вас покупают 13 штук разом.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103446
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жоао, теплее... и в чём проблема? :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103449
Izya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Author the new oneArhat1092. Запретить редактирование тайно и вежливо... добавляем признак актуальности записи и вместо редактирования, деактивируем старую запись добавляя новую втихаря...

Не взлетит - если для конкретно Древлеваси Пупкина мы написали, что он покупает не switch, но Концентраторъ сѣтевой , то мы должны при сохранении документа а)сохранить новую версию товара с наименованием " Концентраторъ сѣтевой " и б)сохранить ЕЩЕ одну новую версию товара со старым наименованием switch. Почему еще одну? Потому что, как мне кажется, если уж пошел по этим граблям, то разумнее держать историю названий ("как мы называли свитчи в разное время"), а не просто беспорядочную кучу; что еще интереснее, если все-таки держать беспорядочную кучу, то получается какой-то неопрятный вариант, от которого так размашисто открещиваются.

Зачем? Ну ладно, предположим, что история имен вдруг потребуется. Но КМК реализация этой нужды вообще не связана с обсуждаемым вопросом. Во всяком случае, если предположить, что ссылками работаем, куда ссылаться? на запись в истории изменений?

Кстати, во многих ERP строки до и после проведения в разных таблицах хранятся. КМК в этом случае в таблице "до проведения" можно ссылками работать (а может и нужно, что б инфа, например, о том же названии актульная была). За исключением цены, конечно, хотя цена вообще из прайсов берется или вычисляется, а в этом случае можно базовую цену отслеживать по ссылке. А в таблице "после проведения" атрибуты товара, необходимые в документах, надо прямо в строках хранить (целиком инфу о товаре копировать, конечно, не нужно, в исходных строках много лишнего, что для проданного товара не нужно... как здесь сказали "другая сущность"). Эту таблицу можно и не связывать, единственно для удобства пользователя через интерфейс организовать поиск по идентификатору, типа по EAN,... если в каталоге осталась такой товар, пусть покажет. Схема из практики, возникла при переходе на новую систему, когда удалили кучу старых артикулов. Так народ совершенно не напрягался. когда система вместо карточки товара показывала сообщение "товар устарел", да и редко это было.

Но я не настаиваю. Вообще спор ни о чём. Каждое решение хорошее, если оно подходящее.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103458
Izya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЖоаоArhat109... вместо того чтобы понять(всего лишь!) что товар в каталоге и (проданный) товар в заказе - это … две отдельные Сущности со своими Связями... и все дальнейшие "расчеты"/"статистика продаж"/etc (можно подчеркнуть всё) ведется с табличкой проданных товаров (можно даже отдельно держать)... ну ни причем там (в заказе) ссылка на прайсовую позицию, пардон на исходный каталог товаров...
А теперь представьте себе реальный мир:
Вы купили 16 одинаковых предметов в двух партиях по 8 штук у разных поставщиков, у первого в документах предмет зовется switch, у второго — hub. А у вас покупают 13 штук разом. А у меня оно в каталоге заведено как "Коробка с проводами" и я ее так и продам". В чем проблема то?
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103459
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109_мод,

Да ладно сочинять-то! Вы "полное отрицание" каких-то там "принципов" где нашли? :)

Мою жену одна почтенная насельница монастыря давеча на праздниках уверяла, что слово "кошмар" - оно неправославное, потом что от злых языческих демонов происходит, Кошов и Маров. Quelle cauchemar, а я ведь и не знал! (Самое смешное, бабка не так уж неправа, но, подозреваю, даже и не догадывается об этом).

Если оставить почтенных насельниц и обратится к местным насельникам, то было бы недурственно вспомнить определение 3НФ:

википиелияПеременная отношения R находится в 3NF тогда и только тогда, когда выполняются следующие условия:

R находится во второй нормальной форме.
ни один неключевой атрибут R не находится в транзитивной функциональной зависимости от потенциального ключа R.


Так вот, название в счете именно для Васи "Лопата саперная гламурная" функционально зависит только и исключительно от ПК детализации счета. Ага.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103482
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IzyaЗачем? Ну ладно, предположим, что история имен вдруг потребуется. Но КМК реализация этой нужды вообще не связана с обсуждаемым вопросом. Во всяком случае, если предположить, что ссылками работаем, куда ссылаться? на запись в истории изменений?
Да, потому что куда же еще*

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

Давайте сразу усложним пример: Я продал 13 штук как "концентратор 3COM ..." авансом (кредитование покупателем), но у меня есть Поставщик1 с "HUB 3COM..." (10шт.) и Поставщик2 с "SWITCH 3COM..." (6шт).
Как быть? :)

Надо сформировать счета на поставщиков, и отгрузочные документы покупателю и транспортной компании, которая всё это повезет СРАЗУ от поставщиков к покупателю, миную мой склад ... :)

P.S. не забываем про первый пост: есть только каталог товаров и табличка заказов (для покупателей, её же и приспособим для закупок)... курсовая, не до историй и чего ещё...

Решение (без каких либо дополнительных таблиц):

Поскольку наименование копируется (мой вариант), то легко:
1. переименовываем "HUB 3COM..." - делаем заказ поставщику1
2. переименовываем ...
3. далее по списку. :)

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

:) не успел за попкорном :(
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103494
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Author the new one,

хужее всё. Спор о том, что многие такие ошибки - подаются как догмы.

Лох - должен платить. Другого объяснения - я не вижу.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103506
Izya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Author the new oneСпор как раз очень о чем - спор о том, как легко сделать крупную ошибку и потом ее долго не замечать.

Ка известно "если что-то на что-то похоже, то это оно и есть". Можно ли назвать ошибкой рабочее и безпроблемное решение? Возможно через 10 лет потребуется перепроектирование, но также возможно что к тому времени контора 2 раза закроется. Нафига тогда заранее бороться с мифическими ошибками, если это и не ошибка даже, а подходящее под текущую ситуацию простое рабочее решение?
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103511
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arhat109P.S. вот сколько фантазёров ни спрашивай - ведь ни разу не показали ещё на источник... "своих не выдаем"! :)
Начните с начала:
Мартин Дж. - Организация баз данных в вычислительных системах
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103512
Izya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Author the new oneArhat109_мод,

Да ладно сочинять-то! Вы "полное отрицание" каких-то там "принципов" где нашли? :)

Мою жену одна почтенная насельница монастыря давеча на праздниках уверяла, что слово "кошмар" - оно неправославное, потом что от злых языческих демонов происходит, Кошов и Маров. Quelle cauchemar, а я ведь и не знал! (Самое смешное, бабка не так уж неправа, но, подозреваю, даже и не догадывается об этом).

Если оставить почтенных насельниц и обратится к местным насельникам, то было бы недурственно вспомнить определение 3НФ:

википиелияПеременная отношения R находится в 3NF тогда и только тогда, когда выполняются следующие условия:

R находится во второй нормальной форме.
ни один неключевой атрибут R не находится в транзитивной функциональной зависимости от потенциального ключа R.


Так вот, название в счете именно для Васи "Лопата саперная гламурная" функционально зависит только и исключительно от ПК детализации счета. Ага.Сильно! только пока непонятно, почему это аргумент против того, что говрит Arhat109.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103523
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IzyaСильно! только пока непонятно, почему это аргумент против того, что говрит Arhat109.


автор Третий закон Чизхолма.
Любые предложения люди понимают иначе, чем тот, кто их вносит.
Следствия.
1. Даже если ваше объяснение настолько ясно, что исклю-
чает всякое ложное толкование, все равно найдется человек,
который поймет вас неправильно.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103532
Izya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модArhat109P.S. вот сколько фантазёров ни спрашивай - ведь ни разу не показали ещё на источник... "своих не выдаем"! :)
Начните с начала:
Мартин Дж. - Организация баз данных в вычислительных системах Это Вы сейчас о чем? У меня эта книга как раз под рукой :). Где там написано про "Товар -объект, прайс-лист -объект, имеющий св-во объект Товар, аналогично накладная?". Или про историю изменений, как универсальный механизм? Что то Вы попутали.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103546
Izya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Author the new oneIzyaСильно! только пока непонятно, почему это аргумент против того, что говрит Arhat109.


автор Третий закон Чизхолма.
Любые предложения люди понимают иначе, чем тот, кто их вносит.
Следствия.
1. Даже если ваше объяснение настолько ясно, что исклю-
чает всякое ложное толкование, все равно найдется человек,
который поймет вас неправильно.

Главное в споре — вовремя перейти на личность… (М. Жванецкий). :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103549
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IzyaГлавное в споре — вовремя перейти на личность… (М. Жванецкий). :)

Да, причем на свою :-)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103564
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109 (для покупателей, её же и приспособим для закупок)
[skip]

Решение (без каких либо дополнительных таблиц):



Запихивать разные сущности в одну таблицу - это не достоинство решения, нет :)
Уж не говоря об переименовании товаров как элементе ежедневных бизнес-процессов.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103574
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинЗапихивать разные сущности в одну таблицу - это не достоинство решения, нет :)
Уж не говоря об переименовании товаров как элементе ежедневных бизнес-процессов.это - неописуемая крутизна разработчика :)
доводилось видеть подобное отношение к Контрагентам - то еще счастье было сопровождать,
но к Номенклатурой так поступать...
аж страшно представить насколько это круто...
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103577
Izya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Author the new oneIzyaГлавное в споре — вовремя перейти на личность… (М. Жванецкий). :)

Да, причем на свою :-)Вы сначала ткните, где тут кто-то (кроме Вас, конечно) собирается под конкретного Васю Пупкина названия менять. Ahrat109 вроде этого делать не собирается. Я тоже. Вопрос вообще о другом.

Например. Заводили наименования товаров как попало. Потом решили схему наименований стандартизовать. Старые отгрузочные документы при этом измениться не должны. Варианты решений
1) Можно делать историю изменений.
2) Можно названия в строках отгрузки держать. И то и другое - рабочие решения, которые активно используются.

Никто Васе изменять руками ничего не будет. Вы же борясь со своим навязчивым кошмаром по имени "Вася Пупкин" начинаете приводить оводы на уровне "Волга впадает в Каспийское море." Поэтому я Вас и спросил, каким образом фраза про 3НФ является аргументом в споре с Ahrat109. По мне - никаким. Но вдруг Вы сможете объяснить.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103581
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IzyaПоэтому я Вас и спросил, каким образом фраза про 3НФ является аргументом в споре с Ahrat109.
Я с ним, если чо, не спорю. Более того, я с ним соглашаюсь.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103600
Izya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинЗапихивать разные сущности в одну таблицу - это не достоинство решения, нет :)
Уж не говоря об переименовании товаров как элементе ежедневных бизнес-процессов.

У каждого свои сущности в голове :) кто сказал, что разные? Докажите? Я отгружал 5 штук чайников, сделанных в китае, весом 2 кг брутто с EAN 860001... . Вот эта кучка чайников по моему и есть сущность на момент отгузки, вместе с названиями и др цифирями. Вы думаете по другому? Ну здесь мы можем спорить до хрипоты.

А по поводу ежедневных переименований... а вдруг бизнесу именно это нужно... для маскировки например :) ..а "правильный, неправильный" это не нам судить
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103668
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинЗапихивать разные сущности в одну таблицу - это не достоинство решения, нет :)
Уж не говоря об переименовании товаров как элементе ежедневных бизнес-процессов.

Конечно не комильфо. Но в рамках поставленной задачи и озвученной ТС структуры (только две таблицы), можете предложить другое? :)

Кстати, может Вы своё проектное решение предложите по озвученному условию? (хранения ссылки на каталожный товар в таблице заказов)... а то как-то скучно... :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103674
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IzyaКот МатроскинЗапихивать разные сущности в одну таблицу - это не достоинство решения, нет :)
Уж не говоря об переименовании товаров как элементе ежедневных бизнес-процессов.

У каждого свои сущности в голове :) кто сказал, что разные? Докажите?

Закупка и реализация? очевидно разные. У них разное дерево состояний, разные операции,
разная первичка.

IzyaА по поводу ежедневных переименований... а вдруг бизнесу именно это нужно... для маскировки например :) ..а "правильный, неправильный" это не нам судить

Мы обсуждаем не некие гипотетические требования бизнеса, а ограничения системы.
Описанная система требует переименовывать товары в каталоге, если у разных поставщиков они числятся под разными названиями.
Этак можно оправдать любую кривизну в проектировании - "А вдруг именно это нужно бизнесу? правильный, неправильный - не нам судить".
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103679
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chop,

а ваше решение по редактированию каталожного наименования - будет, или уже не смешно, или тоже будете терминами кидаться (кстати, автор бросков - не озвучил знает ли он их сам)... или тоже учиться отправите? :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103681
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IzyaЭто Вы сейчас о чем? У меня эта книга как раз под рукой :).
Это хорошо, еще бы и прочесть. БД несколько отличается от набора файлов. Как вы думаете, чем ?
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103686
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот Матроскин если у разных поставщиков они числятся под разными названиями.
То это разные товары.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103703
NetObserver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

1)Честно говоря, ваш пример с переименованием товара кажется притянутым за уши. Есть такое понятие как "Артикул".
2)Кстати, схема с флагом "удален" прекрасно подходит для Вашего случая переименования товара:
юзер переименовывает товар -
1)запись помечается как удаленная
2)создается новая запись с новым наименованием.
3)Остаток товара переносится на новый код
Итог - в справочниках видно только новое наименование, во всех отчетах по уже заведенным документам - видно старое наименование.
Вы это хотели?
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103709
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Кстати, может Вы своё проектное решение предложите по озвученному условию? (хранения ссылки на каталожный товар в таблице заказов)... а то как-то скучно... :)

Ну а чего там сложного - да, ссылка на товар из нашего каталога из элемента заказа.
Каталог(и) поставщиков - совершенно другая сущность, связанная N:1 c каталогом наших товаров. Товары нашего каталога в норме не переименовываются никогда, если бизнес хочет все-таки предусмотреть эту возможность с сохранением старых названий в документах (я не встречался) - прикручиваем к каталогу хранение истории.
Цену в элементе заказа - храним, поскольку там историей не отделаешься (хотя история изменения цены товара полезна в любом случае).
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103720
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модКот Матроскин если у разных поставщиков они числятся под разными названиями.
То это разные товары.
Нет, разумеется.
То есть если пользователю системы хочется устраивать из каталога помойку- он может
по факту держать связь 1:1. Но система делать это не заставляет.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103825
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Chop,
а ваше решение по редактированию каталожного наименования - будет, или уже не смешно, или тоже будете терминами кидаться (кстати, автор бросков - не озвучил знает ли он их сам)... или тоже учиться отправите? :)а нет "моего" решения,
креативом не страдаю, никого никуда не посылаю...
меня вполне устраивает тот подход, который реализован в 1с

другие подходы видел, даже поддерживать/развивать приходилось
свят свят свят от такого счастья
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103857
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103895
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Author the new oneСитуация следующая: покупатель требует в отгрузочных документах наименование один к одному как в спецификации, а в документах от наших поставщиков этот товар называется по-другому. Что делать?
Храить в приходных накладных название поставщика и ссылку на каталог, где название правильное
зы выход всегда есть
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103898
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин,

Вот. Это по-нашему. Сначала вариант 1 ("идите нахрен Василий"), а если не уходит, то сразу третий. Пусть смотрит историю...
Зачет.
:)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103899
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод,

... и бить по рукам (см. вариант 1) :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103918
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NetObserver,

1. притянут за уши ровно настолько же, насколько цена может меняться в процессе работы фирмы.
2. С артикулом возможна та же "фигня" (возможно значительно реже).
3. Ваш пункт 3 в реальности не так прост, как Вы написали... там многа чего "переносить" придется... но, собственно это вариант решения номер 2 из озвученных мною "камасутр".
4. В старых документах (если работа хранимок/селектов) организована единообразно (а то!), вы ваще никакого наименования НЕ увидите как и в каталоге (оно же помечено как удаленное!), иначе, придется делать ОТДЕЛЬНЫЙ код для "тут показываем/а тут рыбу заворачиваем" в каждом конкретном случае... (в каталоге нельзя удаленное показывать, а в заказах - надо... а если оно на самом деле было удалено как ошибочное, то надо вводить отдельный признак

... (вот оно откудова: "мне одного признака не хватает") :)

Смеемся дальше. (попкорном запасся) :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103921
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод,

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

Дык, вот ситуацию с переименованием названия в этом самом "правильном каталоге" и рассматриваем!

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

... исходная задача была:

Есть таблица заказов, в которой есть ссылка на товар из каталога... и только. Как решить вопрос с сохранением старого названия в старом заказе, в случае переименования товара в каталоге?

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

варианты "камасутр", предложенные мною 13737500 :
1. "идите нахрен Василий" - запретить переименование в каталоге.
2. "признак "удален" с автовставкой нового товара в каталог. Проблемы с переносом других данных к новому наименованию, необоснованный рост БД, проблемы с поиском и скоростью выборок.
3. "история изменений"... пухнем, торомозим и т.д.

... теперь уже смешно мне... и похоже не только мне. :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103938
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Author the new one,

+5. Эта старая головная боль заложена как раз такими ошибками проектирования... давно, давно... гурами... :)
и это не одна проблема...
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38103942
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109мною было предложено: копировать название в заказ, "гурам" стало смешно... потому как это денормализация (сами они правда так не писали, видимо подзабыли это слово)

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

ну и? несмешное (и простое, на уровне курсовика) решение то ТС-у кто-нить даст? или тока 3 варианта "камасутр"? :)

... а там у него ещё и прямой вопрос про удаление товаров из каталога был... :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104010
Izya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модIzyaЭто Вы сейчас о чем? У меня эта книга как раз под рукой :).
Это хорошо, еще бы и прочесть. БД несколько отличается от набора файлов. Как вы думаете, чем ? Читал. Нету там ничего не про "Товар -объект, прайс-лист -объект, имеющий св-во объект Товар, аналогично накладная?", ни про историю изменений, как универсальный механизм. То есть от вопросы мы увиливаем типаостроумными советами.

Как бы это объясить то :) Я же не против ссылок вообще. Например, актуальные прайслисты я буду делать только через ссылки на товары из текущей номенклатуры. Здесь ссылки нужны и полезны. А инфу о товаре в позициях отгрузок я буду делать копированием.

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

Опять таки, я не настаиваю. Если я 100% буду уверен, что описание товара не поменяется, я сам первый через ссылки сделаю. Но личный опыт - ровно наоборот. Пытался сделать через ссылки, но повылазили грабли, а переделка на копирование оказалась быстрым и эффективным решением.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104017
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IzyaОпять таки, я не настаиваю. Если я 100% буду уверен, что описание товара не поменяется, я сам первый через ссылки сделаю. Но личный опыт - ровно наоборот. Пытался сделать через ссылки, но повылазили грабли, а переделка на копирование оказалась быстрым и эффективным решением.а как ваш личный опыт подсказывает отчет по доходности продаж строить например?
будете брать кипу приходных и расходных накладных и с помощью озарения хитрых алгоритмов определять какая копия какой соответствует?
:)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104056
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Izya,

... а мне уже показалось, что здесь только ЧАЛ один во всем понимает... :)

На самом деле, вопрос с переименованием товара в каталоге и копированием в заказ - куда как более серъезный. Это то самое "отсутствие связей в РМД", которое приходится всегда делать ручками в ЯП, использующем РСУБД. И это - основной "косяк" М5 связей как не было, так и нет...

Копировать приходится, потому что другого пути - нет. Прайс-лист (каталог товаров) и заказ - это РАЗНЫЕ Сущности и ссылаются они на разные свойства разных товаров (хотя и кажется что вроде одно и то же)...

ваш пример - как раз попытка объяснить это...

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

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

P.S. Кстати, насколько помню, в 1С реализован первый вариант "камасутр". :)

Итого, моё предложение ТС-у:

1. Каталог товаров - это, по сути, ваш "прайс-лист". Как и чего в нём названо, сколько стоит, какими ещё параметрами обладает - пофиг. Не играет никакой роли. Отсюда можно удалять, править "всё что угодно"... можете вести версионность, историю изменений (если хочется). Он нужен "для показу" (справочник или витрина вашей БД).

2. Заказы (строчная часть документа, есть ещё и шапка). Сюда копируете(это нормально и дает самое быстрое решение на всех этапах как работы так и последующего развития системы) все значимые параметры из каталога товаров, которые могут быть использованы для дальнейшей работы с документами, статистикой продаж и т.д. Если сильно хотите 3НФ - сделайте отдельно(!) таблицу "проданные товары" и ссылайтесь в строчках заказов на неё. Но никак не на исходный каталог. Заметьте, что тут УЖЕ нет ни истории, ни версионности, ни удалений. Это УЖЕ проданные товары. Поезд ушел. В лучшем случае, можно добавить "архивирование" и удаление ошибочной продажи - сторно (и то осторожно).

Как вариант (это решение хуже) - можете ввести признак в исходный каталог "продано" и вести все заказанные/проданные товары в одной таблице. Почему хуже - предлагаю обдумать на досуге самостоятельно.

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

4. Аналогично, поступаете и с обратной стороны - снабжения и соответственно склада: каталог входящих товаров (а равно и склад и приходные документы) - к результирующему прайс-листу (вашему каталогу для показу) - НЕ ИМЕЕТ. Это также разные Сущности.
Только в этом случае, у Вас будет возможность правильно распределить заказ на Поставщиков, даже с разными наименованиями, правильно вести статистику учета приходов и т.д...
... и опять, заметьте - нет тут ни истории, ни версионности... это УЖЕ купленные товары. Поезд опять ушел. В лучшем случае, можно разрешить удаление ошибочной закупки и архивирование. Ограничения - теже что и с продажей.

Ваш "каталог товаров" - это среднее, связующее звено между Сущностями поставок и Сущностями продаж ... вот тут нужна история и версионность параметров в общем виде...

... если бы в РМД были Связи - можно было бы воспользоваться ими. Но их нет. Так что - копировать ручками.

Удачи! и поменьше читайте ерунду предлагаемую как "так точно правильно". К этой рекомендации - относится также (мало ли какая у Вас задача на самом деле).
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104122
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Кот Матроскин,

ну и? несмешное (и простое, на уровне курсовика) решение то ТС-у кто-нить даст?

Не знаю термина "простое на уровне курсовика". Либо у нас в scop'е есть требование хранить историю изменений, либо нет. Если есть - надо его делать, нормально, а не половинчато.
Если нет - вообще и вопроса нет.

Arhat109... а там у него ещё и прямой вопрос про удаление товаров из каталога был... :)
и ему на него ответили почти сразу - товары из каталога удалять не надо.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104162
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обсуждение бреда, ИМХО, не дискуссия...
много букв - не означает обилие аргументов
знание терминов умных слов не доказывает понимание предмета
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104172
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор темы и не знал до чего она может разрастись:)
Однако, разрастание почему-то не дошло до такой хорошо известной функциональности, как партионный учет. При его полноценной реализации, формально, можно обойтись без истории и денормализации (в виде переноса свойств товара в заказ). Ведь в партии товара можно хранить наименование поставщика.
В заказе вы можете, во-первых, указать один и тот же товар в разных записях и продать его по разным ценам. При печати документов вы можете просто задать параметр "печать наименований партий", например. А можете печатать стандартное наименование товара. И не нужно ничего "перетаскивать". В случае полноценного партионного учета запись отгрузки так и так имеет детализацию (1:М), в которой указаны конкретные партии.
Разумеется, можно завести-таки в заказе свойство, которое по умолчанию содержит наименование товара, но может быть изменено (значение именно этого свойства и печатается в документе). Более того, чего не сделаешь ради клиента, можно и в детализации записи для каждой партии применить такой же механизм. Более того, можно в БД хранить для каждого товара его специфическое название для конкретного покупателя:) Более того, и т.д.
Но, если это не просто товар, а изделие, то у него есть спецификация, технологический процесс, паспорт качества с определенными характеристиками и т.п. И все это может быть востребовано, когда заказ уже создан. Так что связь между "заказом" и "товаром", конечно, есть:)
И историю изменений, конечно, можно поддерживать и использовать, при необходимости.
В общем, скорее всего, просто не понимали друг друга спорщики. Не вижу предмета для спора. Или, во всяком случае, для принципиального спора:)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104193
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

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

то самое решение, о котором был спор и смех - как раз ограничивалось ими. И, как ни странно, ни один оппонент никакого другого решения - так и не привел. Так что спора не было. Был проф.непригодный треп.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104215
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13729640
На этом вопрос автора был исчерпан.
Можно было просто порекомендовать хранить наименование товара еще и в заказе. Хотя автор и не утверждал, что оно там не хранится, он лишь сообщил, что в заказе есть идентификатор товара. И он там, действительно, должен быть, если уж связь моделируется с помощью механизма ключей:)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104327
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

верно, именно с этой рекомендации треп и начался... пришлось защищать рекомендацию полноценно. :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104403
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arhat109Дык, вот ситуацию с переименованием названия в этом самом "правильном каталоге" и рассматриваем!
Все очень просто: если это ошибка - она исправляется, что делать с ошибочными документами - вопрос второй. Если объект изменяет свое св-во (любое), то старое сохраняется в истории. Все старые документы останутся неизменными.
Что вы ломитесь в открытую дверь, все это давным давно во всех нормальных системах сделано. А ваш подход - это 60-ые годы прошлого века. Тут даже обсуждать нечего.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104411
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модВсе очень просто: если это ошибка - она исправляется, что делать с ошибочными документами - вопрос второй. Если объект изменяет свое св-во (любое), то старое сохраняется в истории. Все старые документы останутся неизменными.
Что вы ломитесь в открытую дверь, все это давным давно во всех нормальных системах сделано. А ваш подход - это 60-ые годы прошлого века. Тут даже обсуждать нечего.+1
креативщики...
автоматизируют ошибки юзеров и фальсификацию учетных документов
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104414
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IzyaПытался сделать через ссылки, но повылазили грабли, а переделка на копирование оказалась быстрым и эффективным решением.
Это не решение. Т.е. искали под фонарем, хотя потеряли совсем в другом месте.
См. задачку: расчитать доход от продажи товара Х (ессно независимо от его переименования)
зы следуя этой экзотической логике все ссылки надо заменить на полный набор св-в соответ. объекта. Ну, ну, вперед и с песнями.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104424
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот Матроскин и ему на него ответили почти сразу - товары из каталога удалять не надо.
Нормальная система просто не позволит это сделать либо на уровне ОЦ, либо на прикладном
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104485
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модСм. задачку: расчитать доход от продажи товара Х (ессно независимо от его переименования)

Да все аналитические отчеты накроются - зависимость обьемов продаж от времени года, от маркетинговых программ, etc. Ладно отчеты - автоматизация комплектации заказа и то начинает представлять сложности.
Т.е. это решение худо-бедно работает для "полсотни позиций в каталоге и 10 единиц на складе ( в коробке из-под сникерсов), а через полгода все равно прогорим и кому нужны будут отчеты".
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104496
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
продолжаем веселиться. Часть три. :)

_модArhat109Дык, вот ситуацию с переименованием названия в этом самом "правильном каталоге" и рассматриваем!
Все очень просто: если это ошибка - она исправляется, что делать с ошибочными документами - вопрос второй. Если объект изменяет свое св-во (любое), то старое сохраняется в истории. Все старые документы останутся неизменными.
Что вы ломитесь в открытую дверь, все это давным давно во всех нормальных системах сделано. А ваш подход - это 60-ые годы прошлого века. Тут даже обсуждать нечего.

Да ну? Если (как указано у ТС) ссылка заказа смотрит в единственный каталог товаров , то чем поможет Вам то, что старое значение Вы положили в историю ?!?

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

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

... сравните по стоимости, надежности и долговечности с предложенным вариантом... какой проще в реализации, сопровождении... и т.д.

Итог вашего подхода: "лох должен платить".

... ну и просветите по второму вопросу, в частности "Что делать с ошибочными документами, по которым уже проведена оплата/заключен договор?", особенно для случая систематической ошибки: "изменение наименования поставщиком".

Вот так, ошибка проектировщика вылезает геммороем кодерам, бухгалтерам и всем остальным.
Правильно. Самый верный вариант камасутры - первый (идите нахрен Василий), в смысле совсем, пишите свои документы в Excel, или ваще перьевой ручкой... вот такие современные решения, оказывается. :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104503
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин,

Забавная фантазия... эту строчку
все значимые параметры из каталога товаров, которые могут быть использованы для дальнейшей работы с документами, статистикой продаж и т.д. Если сильно хотите 3НФ - сделайте отдельно(!) таблицу "проданные товары" и ссылайтесь в строчках заказов на неё. Но никак не на исходный каталог.


пропустили, читая "по-диагонали", нет? Если нет, то объяснить соостевтвие написанного Вами этой строке сможете? :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104534
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Кот Матроскин,

Забавная фантазия... эту строчку
+
все значимые параметры из каталога товаров, которые могут быть использованы для дальнейшей работы с документами, статистикой продаж и т.д. Если сильно хотите 3НФ - сделайте отдельно(!) таблицу "проданные товары" и ссылайтесь в строчках заказов на неё. Но никак не на исходный каталог.


пропустили, читая "по-диагонали", нет? Если нет, то объяснить соостевтвие написанного Вами этой строке сможете? :)

Давайте Вы сами будете толковать написанное Вами? Опишите механизм, как происходит работа с этой Вашей таблицей "проданные товары", в какой момент туда попадают данные, с какими таблицами она связана, как помогает построить отчет "Зависимость продаж товара Х от времени года независимо от переименований ", etc. - тогда можно буджет что-то обсуждать.
Пока у меня впечатление, что эту таблицу Вы никогда нигде не рализовавывали, придумали прямо вчера, поэтому сами не до конца представляете, что это и к чему.
Если ошибаюсь - ну отлично.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104591
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arhat109Да ну? Если (как указано у ТС) ссылка заказа смотрит в единственный каталог товаров , то чем поможет Вам то, что старое значение Вы положили в историю ?!?
За парту и учиться. Если вы даже это не знаете, то говорить не о чем.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104613
Author the new one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модArhat109Да ну? Если (как указано у ТС) ссылка заказа смотрит в единственный каталог товаров , то чем поможет Вам то, что старое значение Вы положили в историю ?!?
За парту и учиться. Если вы даже это не знаете, то говорить не о чем.

Вы б, товарищ Кот, вместо призывов учиться предложили бы наконец что-то внятное по случаю редактирования и переименования. Лочить при продаже for update товар в каталоге мне кажется Бредятиной; хотя, быть может, кому-то это и нравится.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104615
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модIzyaПытался сделать через ссылки, но повылазили грабли, а переделка на копирование оказалась быстрым и эффективным решением.
Это не решение. Т.е. искали под фонарем, хотя потеряли совсем в другом месте.
См. задачку: расчитать доход от продажи товара Х (ессно независимо от его переименования)
зы следуя этой экзотической логике все ссылки надо заменить на полный набор св-в соответ. объекта. Ну, ну, вперед и с песнями. Я чё то офигеваю от вас, ребяты )
У товара есть название, и есть уникальный идентификатор, например, EAN. (Хотя у меня был случай когда под новый год пришел товар в праздничной упаковке, которая для покупателя была явно другим товаром, но EAN сохранился). Может быть и не EAN. Предполагается, что ID товара не меняется со временем. В строках отгруженных заказов он. конечно, есть, но не как foreign key на товары. Интерфейсно, пользователю я это ID менять, конечно, не даю. Вот я этому ID я и группирую (взяв LAST() по названию, например), и даже могу связать по нему с таблицей товаров каким нить LEFT JOINOM, что б, если найдется, взять название оттуда. В общем с аналитикой никаких проблем.

...А вы чё, правда по названию группируете? Ну-ну... :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104631
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КМК вы здесь слово ссылка воспринимаете очень уж буквально. Все-таки это не ссылка, как в ОО языках, а внешний ключ, т.е. ассоциация. А здесь КМК случай, когда изначально стоит условие, что эта ассоциация не должна быть настолько жесткой, как внешний ключ. Поэтому приходится реализовывать либо более мягкие механизмы на прикладном интерфейсном уровне, либо, если надо, историю делать. Жаркий спор, непонятно о чем.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104663
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
U-geneлибо, если надо, историю делать.
Ессно историю, только делать это надо правильно с сохранением ID. Тогда и FK работает.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104705
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модU-geneлибо, если надо, историю делать.
Ессно историю, только делать это надо правильно с сохранением ID. Тогда и FK работает.Насчет "надо" не уверен. У меня был случай, что сначала был FK (хотя названия в строки отгрузок всё равно копировали :) ), потом решили старые товары убить, и стали работать без FK (что б первичку многолетней давности можно было печатать). Работа это все долго и без проблем.

Это я к тому, что настаивать на существование изначально "правильных" решений, которые единственно и "надо" делать, мне кажется неправильно.

PS. Забавно, кстати, что в какой то момент по той таблице строк отгрузок был сделан простенький отчет "переимования":) Пользовались им раза 2-3, не больше.

PPS. Вы б видели как это в Навижн решено. Там контроль целостности между таблицами сделан на уровне приложения очень криво и с жуткими тормозами. Вы тут все академики, по сравнению с теми ребятами.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104738
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene ...потом решили старые товары убить

А в чем был мотив такого решения? Сэкономить дискового пространства на пару долларов?
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104739
Geny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спор ни о чем. Все зависит от конкретных условий работы и требований бизнеса.

PS. Хотя в этом случае я за де нормализацию, и вообще ни вижу ничего плохого в де нормализации, если это делать очень осторожно.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104788
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneУ меня был случай, что сначала был FK (хотя названия в строки отгрузок всё равно копировали :) ), потом решили старые товары убить, и стали работать без FK (что б первичку многолетней давности можно было печатать). Работа это все долго и без проблем.это - чудо!
а что еще, кроме печати первички, могла делать система?
:)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104797
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин,

Реализовано у меня это было ещё на Access-97 (писал тут как-то), в проге для фирмы по продаже компов и железок. Работало это всё на третьем пне 800Мгц со 128мб оперативы... такой обычный офисный комп того времени.

Было:
1. Полуавтомат парсинга товарной строки (сейчас с декабря, такой для mediam-а пилить начал), который:
а) читал строку, разбивал по словам, разворачивал сокращения, приводил значения к каноническому виду и разыскивал к какому параметру товара оно могло бы отностися. Как результат в БД создавалась запись о товаре с до 25 параметров (то что теперь называется EAV)
б) Разыскивал "похожие" по набору параметров и значений товарные позиции и сливал их в общий прайс-лист предприятия (с собственным наименованием железки). Входные товары - оставались в отдельном каталоге поставщиков (с привязкой к поставщику). Наименование новой железки давалось по первому поставщику.
в) в случае коллизий (несколько похожих товаров, совсем новая строка и ряд других) - останавливался и спрашивал "Чё делать?" собственно поэтому и "полу" .
Производительность: 10 поставщиков с 5-20тыс. позиций в каждом парсились за 3-4 часа. 50% времени - первый прайс. Основное время - ответ на "Что делать". Прайс (xls) в автомате на 5000 позиций парсился за 10-15 минут.
Общий объем железок - в среднем около 30тыс позиций на выходе.

2. Интерфейс "продажной блондинки" - "собери себе комп", который по имеющимся параметрам железок не позволял слепить вместе мать от Olivetti с xPCI видеокартой для ISA шины (была такая). При наличии того набора параметров был прост до безобразия: каждый выбор ещё одной железки блондинкой - увеличивал набор выбранных параметров и их значений, сокращая тем самым список допустимого железа к добавлению. На экран выводился допустимый список по категориям
... блондинка только читала текст, даже не зная назначения железа: "ой, вы выбрали мать с сокетом478(подсвечен ограничивающий параметр)... к ней нет процессоров на сегодня... ближайшая поставка ... 3 дня... могу заменить (набор значений ограничивающего параметра) на сокет 960... нет? а какой параметр для Вас наиболее важен (меняем ограничивающий параметр в списке, далее по кругу)"
... результатом было выписка документов на продажу:
а) счет-заказ, с-ф, ТТН и др. покупателю. Каждый документ можно было выписать только по достижению заказом соответствующего состояния (опллачен, собран, отгружен). Разрыв во времени печати - до месяца.
б) заказ(ы) на поставку с автоопределением оптимальной схемы закупки (давало 5-7% к рентабельности при общей доходности в 10-15% - много) с учетом наличия, "в дороге", "транспортных" как до поставщика, так и до покупателя. Зачастую транспортная (то что собирать было не надо) возила сразу от поставщиков к покупателям (поначалу не было своего ни склада ни офиса).
в) приказы для налоговой с текстом "товар, поставщика такого-то" поставить в прайс "так-то" если были переименования.

3. Интерфейс анализа продаж. Лучший поставщик, Лучший покупатель, менеджер-продаж, наиболее выгодные товары.

4. Позже были добавлены элементы СРМ для менеджеров (блокировка клиента, история клиента, задачи менеджеру, выполнение, рекламации)

Писано как раз на основе предложенного решения (стал бы я предлагать то, чего сам не делал. гы).
Время выписки документов - 1-3сек.
Время генерации отчетов - 5-20сек.

По факту подключения 11 рабочего места - MS ACCESS - лег из-за объемов которые он гоняет по сети. Точнее легла сеть.
Перейти на 1С - так и не удалось... из-за невозможности работать с многомерными наименованиями товаров (вариант 1 камасутр).
Направление было закрыто из-за низкой рентабельности (уже начинались продажи в сетях по ценам ниже моих входных).


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

Вот чтобы нормально печатать все докуметы и была выбрана такая схема. Объем данных по факту - даже меньше чем при наличии истории. В несколько раз.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104803
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GenyСпор ни о чем. Все зависит от конкретных условий работы и требований бизнеса.
PS. Хотя в этом случае я за де нормализацию, и вообще ни вижу ничего плохого в де нормализации, если это делать очень осторожно.
Роль концепции денормализации велика в теории БД.
1) БД - это схема взаимосвязанных типов сущностей.
2) Результатом запроса является часть этой схемы, удовлетворяющая условиям запроса, со всей присущей БД семантикой (бесполезность "реляционных систем", в целом, и SQL, в частности, объясняется и тем, что этот фундаментальный принцип БД не поддерживается).
3) Но, не менее важно то, что результатом запроса может быть и денормализованная схема.
4) И эту денормализованную схему можно как "вычислять" каждый раз, так и поддерживать на уровне базовой схемы.
5) Простой пример (с наименованием товара) обсуждался в этой теме. Замечу, что "перетаскивание" со стороны связи 1:1 может быть сколь угодно тотальным. Например, можно разместить в записи заказа не только наименование товара, но и дату из "шапки заказа".
6) Не менее важны случаи денормализации связей. Например, для схемы
A(Клиент)-->B(Накладная)-->C(Запись накладной)
вы можете как в результате запроса получить схему
A(Клиент)-->C(Запись накладной)
так и просто поддерживать ее (то есть, поддерживать эту, формально избыточную, связь) с помощью триггеров. В случае "реляционной системы" в отношении, моделирующем C, поддерживается не только FK на отношение, моделирующее B, но и FK на отношение, моделирующее A.
7) Поскольку все это должно поддерживаться в интерактивном интерфейсе СУБД, возникает еще один фундаментальный для теории БД вопрос: а нужна ли вообще "алгебра схем"?
8) ViPRos ответил философски - она нужна для управления галактикой:)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104830
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

В ВИПРОС такая денормализация на схемном уровне решена (вычисимая и персистентная миграция) с первого дня.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104862
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина7) Поскольку все это должно поддерживаться в интерактивном интерфейсе СУБД, возникает еще один фундаментальный для теории БД вопрос: а нужна ли вообще "алгебра схем"?
8) ViPRos ответил философски - она нужна для управления галактикой:)
еще как нужна
жить без обобщений - отстаться динозавром
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104883
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
глобальная проблема современности - невозможность однозначной декомпозиции агрегата из разнотипных элементов
что такое 4? (2+2, 1+3,...)???
агрегат не содержит в себе метода однозначной (да хоть какой иногда) декомпозиции
все наши трудности связаны с этим
введение алгебры схем (где схемы разного типа) помог бы решить эту проблему
- агрегат бы содержал в себе граф декомпозиции

но ты как диник не поцмешь этого, у тебя мир плоско-табличный (однотипный):), потому ты и в динамическую классификацию не въехал :(
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104893
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosеще как нужна
жить без обобщений - остаться динозавром
Галактика заменена некими обобщениями и динозаврами:)
Для получения подсхем (в том числе, денормализованных, а это, суде по всему, и есть "обобщения") "алгебра схем" не нужна. Так что, "управление галактикой", все-таки, надежнее:)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104921
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosглобальная проблема современности - невозможность однозначной декомпозиции агрегата из разнотипных элементов
что такое 4? (2+2, 1+3,...)???
агрегат не содержит в себе метода однозначной (да хоть какой иногда) декомпозиции
все наши трудности связаны с этим
введение алгебры схем (где схемы разного типа) помог бы решить эту проблему
- агрегат бы содержал в себе граф декомпозиции
но ты как диник не поцмешь этого, у тебя мир плоско-табличный (однотипный):), потому ты и в динамическую классификацию не въехал :(
Еще раз - управление галактиками надежнее:) Классификаторы и Макротипы Вы обсуждать просто отказались:) Не стоит и здесь запутывать элементарные вопросы избыточной терминологией, теперь вот "динамической классификацией":)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104922
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

ок спи дальше
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104932
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosвведение алгебры схем (где схемы разного типа) помог бы решить эту проблему
- агрегат бы содержал в себе граф декомпозиции
Пока, для приведенного простого примера, я вижу только предложение связи между двумя этими схемами:
(A-->C) получена из (A-->B-->C)/
А зачем? Ведь A-->B-->C итак есть в БД, и ее не нужно получать "обратным вычислением":)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104933
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

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

Производительность: 10 поставщиков с 5-20тыс. позиций в каждом парсились за 3-4 часа. 50% времени - первый прайс. Основное время - ответ на "Что делать". Прайс (xls) в автомате на 5000 позиций парсился за 10-15 минут.
Общий объем железок - в среднем около 30тыс позиций на выходе.

У меня тоже примерно 10 поставщиков, от 3K до 100K позиций в прайсе, общий обьем на выходе - около 130k позиций. Прием одного прайса занимает пару минут (12 лет назад, когда система создавалась, и на той технике время было примерно таким же - правда, позиций в прайсах было поменьше раза в 2-3).
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104935
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosБредятина,
ок спи дальше
"ок спи" еще менее убедительно, чем даже "динамическая классификация":)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104961
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

сморти, возник вопрос о миграции свойств (персистентное или вычислимое)
ты увидел как ВИПРОСовская миграция свойств решает эту конкретную проблему Архата :)
возникнут другие вопросы и увидишь как конкретно решает их Макротип, Классификатор, Контекст, Роль контексная и т.д.
бум ждать случая :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38104965
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаViPRosвведение алгебры схем (где схемы разного типа) помог бы решить эту проблему
- агрегат бы содержал в себе граф декомпозиции
Пока, для приведенного простого примера, я вижу только предложение связи между двумя этими схемами:
(A-->C) получена из (A-->B-->C)/
А зачем? Ведь A-->B-->C итак есть в БД, и ее не нужно получать "обратным вычислением":)
ого, пропустл
а что такое связь между схемами?
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105141
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин,

У Вас как и ранее так и сейчас Access-97 работает, или что поумнее? :)
Ваше перетаскивание также посимвольно обрабатывает КАЖДУЮ строку входного прайса, выделяя термы (слова и словосочетания), и разыскивая их в БД (EAV) с подсчетом совпавших и вычислением функции похожести - "тоже самое"? На ходу добавляя новые термы... как например решали где кончается терм в строке (вот конкретно сейчас озадачен) "альб.д/рисования.карт-обл.с/к.ГУСИ-ЛЕБЕДИ" (и ни одного пробела)?

макросами Access? :)

хотя ладно, тут любят сравнивать несравнимое... можем отдельно пообщаться.

В том приложении, основу работы составляло три каталога товаров: "отПоставщиков" (оригинальные названия, или закупленные товары в примере - третье описание), прайс-лист (тот самый исходный каталог товаров) и "проданные товары".

Первичный - от поставщиков. В него добавлялись новые товары, к нему вязались параметры товаров и много чего другого. Наименование товара - параметром не являлось и хранилось полем в самой таблице каталога (плюс ещё 5 базовых полей о товаре).

В прайс переносились новые товары из каталога поставщиков или связывались дополнительной таблицей с уже имеющимся в прайсе как "синоним". То есть прайс, как такой же каталог, имел свои 6 полей о товаре (копировались) и таблицу связи с каталогом поставщиков... это разрешает переименовывать прайсовый товар "как угодно", не затрагивая наименования поставщиков...
... номер товара в прайсе - совпадает (копирование) с одним из товаров (первым) из каталога поставщиков
... "те же самые" товары поставщиков (возможно и других) попадали уже в таблицу синонимов (первый тоже), там простая связь ИдПрайса - ИдКаталогаПоставщиков...
Нет товара от поставщика - в таблице связи по этому прайсу нет линков... нет данных о товаре - не продаем и не показываем.
Нашли похожий - добавили линк, появились "свойства"
... всё легко добавляется, удаляется ... хранится "текущий снимок" поставщики - прайс.

При создании заказа (и любого другого документа, код - один), товар из прайса (точно также) копировался в табличку тех самых проданных товаров (те же 6 полей), если его ещё не продавали ни разу
, ссылка на проданный товар втыкалась в строчку заказа (что тут может быть непонятного?!?). Всё.
Никакие изменения таблички проданных товаров действительно недопустимы... на то они и проданные.

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

Понятно что никакой "истории" не было (нафига?). Точнее де-факто она была, просто накапливалась по мере продаж в табличках модуля продажи...

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

А теперь, ваше решение со ссылкой в строке заказа, без предварительно готовой "истории" - как будем поступать?
Сильное связывание - практически всегда - недостаток.

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

о пардон, про отчеты... а что в них "сложного"? Есть список строк заказов (проданных, к оплате и т.д.), есть в них же цены, скидки... есть таблички проданных товаров поставщиков со своими ценами, есть описания поставщиков, условий, описаний транспортных... тупо складываем, вычитаем, множим... что конкретно там непонятно?

Да, были ситуации, когда по закрытию месяца обнаруживалось, что хитом продаж стал комп 2-х летней давности и он УЖЕ снят с производства и новых поступлений нет и не будет... так к нам в РФию одно старьё и возят... по фотикам очень хорошо помню эти "отбросы" в 0.3Мп...
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105213
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chop_модВсе очень просто: если это ошибка - она исправляется, что делать с ошибочными документами - вопрос второй. Если объект изменяет свое св-во (любое), то старое сохраняется в истории. Все старые документы останутся неизменными.
Что вы ломитесь в открытую дверь, все это давным давно во всех нормальных системах сделано. А ваш подход - это 60-ые годы прошлого века. Тут даже обсуждать нечего.+1
креативщики...
автоматизируют ошибки юзеров и фальсификацию учетных документов

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

Ещё аргументы, будут? (продолжаем веселье) :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105227
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин_модСм. задачку: расчитать доход от продажи товара Х (ессно независимо от его переименования)

Да все аналитические отчеты накроются - зависимость обьемов продаж от времени года, от маркетинговых программ, etc. Ладно отчеты - автоматизация комплектации заказа и то начинает представлять сложности.
Т.е. это решение худо-бедно работает для "полсотни позиций в каталоге и 10 единиц на складе ( в коробке из-под сникерсов), а через полгода все равно прогорим и кому нужны будут отчеты".

Вот решения с пухнущей историей - могу понять как ограничивают объемы... а это?!?
Сейчас у меня - более 450тыс. товарных позиций "в работе"... отдача тела страницы до 0.5сек (около 10 запросов к БД: баннеры, голосовалки, собственно товары, сопутствующие, полезные, аналитика посещений - 2.5млн. записей, и т.д.)

... как у Вас? Кто-то тут уже писал, что отчет, генерящийся минутами, а то и по часу - нормально...

:)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105233
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод,

ответ - вполне достойный. Вы не один такой. Сами то там были? А то вот, один кидался терминами, да так и не смог показать - насколько сам их знает... так, допускаю надергал из журнальной статьи... :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105237
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,

спор о том, что если в строках заказа стоит только ссылка на каталог товаров - это кривое проектирование и так делать не то что "не надо", а даже нельзя.

... мне тут пытаются доказать обратное, типа "история" спасает.

Спасает, спасает... бюджет разработчика от разорения. :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105273
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109_мод,

ответ - вполне достойный. Вы не один такой. Сами то там были? А то вот, один кидался терминами, да так и не смог показать - насколько сам их знает... так, допускаю надергал из журнальной статьи... :)
тебя какие термины так зацепили? скажи, объясню или дам ссылку
это обычные вещи, проектировщик должен эти вещи знать
много таких вещей
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105281
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arhat109... мне тут пытаются доказать обратное, типа "история" спасает.
Спасает, спасает... бюджет разработчика от разорения. :)
Ваши наколенные поделки стоят дороже. Не надо чужие деньги считать, вопрос чисто технический
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105284
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

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


ладно это...
давайте только договоримся, что больше вы не будете настолько явно приписывать мне тех слов, что я не говорил,
выделенные мною слова в цитате
тут уже на пробой логики свернуть не удастся - окажетесь примитивным вруном, а не толстым троллем
:)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105349
vladimir74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хм, прочитал выборочно тему, и как то не порял.
Неужели есть системы которые работают с названием товара, а не с его кодом?

ИМХО все работоспособные ERP делятся на те что присваивают товару свой код (часто для старых систем) и те что берут за основу код производителя.

И этот код НИКОГДА не меняется.

PS есть много систем где название пишется каждый раз в таблицу заказов, и много где передается только ссылка на справочник. И у тех и у других есть положительные и отрицательные стороны. Часто в системах передающих ссылку есть в таблице заказов поля для доп. информации. Хотя чаще всего эти поля остаются пустыми.

И если честно -названия товаров в работающей системе меняется ОООчень редко. Я сам 4 года работал в комманде писавшей ERP для фирм торгующих через OnlineShop, ebay + обычный магазин с кассой.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105420
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladimir74Неужели есть системы которые работают с названием товара, а не с его кодом?таких систем здесь примеров не привели,
но сове-етуюють...
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105429
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladimir74ИМХО все работоспособные ERP делятся на те что присваивают товару свой код (часто для старых систем) и те что берут за основу код производителя.есть еще третьи...
стандартный подход в 1с:
1. есть код БД, который рядовому конфигусту не виден и не нужен, код просто есть и работает - ссылочная целостность, все такое, по мелочи... :)
2. есть "код метаданных" - этот конфигурасту виден, и его можно даже задавать (в определенных границах) как того хочется
3. любые другие коды - артикулы, ИНН, МФО, код поставщика, что угодно в любом виде
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105435
vladimir74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chop,

а тебе не кажется что ты описал 1. способ? Я просто его не расписывал, т.к. они дальше вертвлятся как хотят....
Кстати SAP тоже имеет изначально такой подход. Хотя они уже наклипали модуль позволябщий использовать код разработчика а не генерировать самим...
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105446
vladimir74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chop,

Про ID (есть код БД, который рядовому конфигусту не виден и не нужен, код просто есть и работает - ссылочная целостность, все такое, по мелочи... :) ) я вообще молчу. Это уже другая история....
друная вечная война...
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105449
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladimir74Chop,
а тебе не кажется что ты описал 1. способ? Я просто его не расписывал, т.к. они дальше вертвлятся как хотят....
Кстати SAP тоже имеет изначально такой подход. Хотя они уже наклипали модуль позволябщий использовать код разработчика а не генерировать самим...возможно вы не совсем корректно высказались, возможно я не совсем правильно понял :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105452
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladimir74Про ID я вообще молчу. Это уже другая история....
друная вечная война...и молчите дальше,
а то тут у некоторых могут возникнуть идеи и его переименовывать
если узнают, что есть такая штука
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105463
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChopArhat109пропущено...
Нет. просто работают с учетными документами. Легко и ненапряжно "левой задней".
А вот типовые ошибки проектировщиков - как доставляют всем тот самый гемморой, а там и до фальсификации документов недалеко (ссыль на стоны бухгалтеров - была ранее, но Вас это - устраивает как Вы уже писали )гы...
левой задней работаете вы,
продаете товар, которого нет на складе вы ,
а гемор бухам и фальсификацию доков, оказывается, делаем мы,
своеобразная логика


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

Переход на личности, часть третья. То есть вот этот пост писали не Вы 13742971 ? (третья строка сверху), что там Вас "устраивало"? А ровно следующий пост - и есть "тот самый гемморой" из моей цитаты... это с вашей стороны не враньё, просто склероз... так? :)

Далее. Это 13744964 своё враньё как объясните? Полетом фантазии? О какой фальсификации речь была, показать сможете или тоже "замнёте для ясности" как тут многие поступают? :)

Дабы не развился склероз у прочих фантазеров, советую перелистать тему и подсчитать сколько заданных мною вопросов остались совсем без ответов или с ответами "поперек" или прямыми отсылками в никуда.

Теперь, будьте также добры, ответить на то что написали (я Вам тоже покрасил жирненьким), где Вы у меня это нашли? или враньё, но уже Ваше?

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

а вот не надо "выборочно"... речь о том, что
1. вставлять ссылку на номенклатуру в строку заказа - опасно ошибками в документах при переименовании наменклатуры...
2. что нет никакой разницы с точки зрения проектирования между ценой товара и его наименованием... это одно из его свойств и только.
3. решений кроме озвученных тут 13737500 - никто не представил. Но для простой структуры ТС - они достаточно избыточны.
4. Представленное решение:
а) исправляет такую ошибку проектирования (а это именно ошибка проектирования);
б) позволяет делать модульный код и развивать его постепенно;
в) позволяет использовать Историю и прочие решения по назначению;
г) разгружает модули работающие с данными от избыточных данных, избыточных блокировок и т.д.
г.1) модуль продаж - работает со своей частью БД и может почти ничего не знать о модулях снабжения, склада и т.д.
г.2) модуль снабженца - работает самостоятельно и может также почти ничего не знать о продажниках
г.3) модуль истории изменений - занят своей работой и не мешает остальным старыми записями
г.4) ...

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

P.S. Я уже писал, что в мире существует много разных и профессиональных решений, применяемых на практике... но тут (перечитайте первый пост ТС) о них речь не идет. У чела есть каталог товаров и таблица заказов, в которую он пихает внешний ключ на товар из каталога
... я предложил ему копировать наименование (можно до кучи к ссылке)... это и вызвало весь этот треп. Народ решил посмеяться...

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

Вы продолжаете откровенно троллить. Это всё? Аргументы кончились (впрочем от Вас их и не было)? :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105495
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

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

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

что так теперь-то возмутило? :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105499
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Chop,
Вы продолжаете откровенно троллить. Это всё? Аргументы кончились (впрочем от Вас их и не было)? :)приводить аргументы, чтобы спорить с ахинеей?
увольте...
я последние страницы ваши посты даже по диагонали не читаю,
отслеживаю только упоминание моего имени всуе
:)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105507
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модArhat109... мне тут пытаются доказать обратное, типа "история" спасает.
Спасает, спасает... бюджет разработчика от разорения. :)
Ваши наколенные поделки стоят дороже. Не надо чужие деньги считать, вопрос чисто технический

мои наколенные поделки - обошлись мне в 3 месяца основной разработки и около года расширения функционала, в основном в сторону СРМ (как оно теперь называется, тогда их просто не было)... и около 3-х лет функционирования всего предприятия из 3-15-37 человек.

при этом, "крутыми специалистами", с которыми в том числе, консультировались начальники отделов ИТ и ВЦ достаточно крупных контор ... ага, были девочки, ни разу не способные отличить факс от монитора. Они просто грамотно умели читать (значительно лучше некоторых тут)...
... да и такая должность как "снабженец" - отсутствовала как факт, потому что вопрос "где взять дешевле и качественне" - не стоял. Комп считает лучше любого снабженцу... и откатов не берет.
:)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105509
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chop, вот на эти 13749630 вопросы ответы давать будете, или предпочитаете остаться вруном?
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105513
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Chop, вот на эти 13749630 вопросы ответы давать будете, или предпочитаете остаться вруном?на прямые сцылки не сподобились? :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105516
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChopArhat109Chop, вот на эти 13749630 вопросы ответы давать будете, или предпочитаете остаться вруном?на прямые сцылки не сподобились? :)обычно я не хожу по сцилкам, но сейчас прошелся...
батенька - правильно я сделал, что не читаю ваши простыни
:)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105522
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chop,

понял, отстал. остаться вруном - предпочтительней. :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105540
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosБредятина,
сморти, возник вопрос о миграции свойств (персистентное или вычислимое)
ты увидел как ВИПРОСовская миграция свойств решает эту конкретную проблему Архата :)
возникнут другие вопросы и увидишь как конкретно решает их Макротип, Классификатор, Контекст, Роль контексная и т.д.
бум ждать случая :)
Ничего подобного.
1) Не возникало вопросов о миграции свойств. Есть такое понятие - денормализация. Я достаточно подробно объяснил. Как именно еще и инструментально поддерживать денормализацию - это совсем другой вопрос. В ВИПРОС поддержка автоматизирована, это хорошо.
2) Не решает Макротип никакие вопросы, какие не решает банальная схема - множество взаимосвязанных типов сущностей.
3) Ни одного примера не удалось придумать, чтобы ясно и конкретно показать необходимость концепции Классификатора на уровне структуры МД.
4) Не серьезно ждать случая.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105546
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosБредятинапропущено...
Пока, для приведенного простого примера, я вижу только предложение связи между двумя этими схемами:
(A-->C) получена из (A-->B-->C)/
А зачем? Ведь A-->B-->C итак есть в БД, и ее не нужно получать "обратным вычислением":)
ого, пропустл
а что такое связь между схемами?
Откуда я знаю. Это же не мое предложение - показывать откуда взялся "агрегат":) И тем самым доказать необходимость "алгебры схем".
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105560
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

ниче меня не возмутило
я выше показал как мигрируют свойства (автоматизированная поддержка денормализации - по Бреду)
при том через вес граф связей
т.е. можно создать такой фасад из мигрантов, что аборигенов и не видно будет
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105561
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Бредятина.
2) Не решает Макротип никакие вопросы, какие не решает банальная схема - множество взаимосвязанных типов сущностей.
[/quot]
это - Концепты.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105563
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

да, я посмотрел. Впечатлило. Но Вы же не будете мне запрещать фантазировать вслед за всеми (и Вами тоже)? :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105596
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Кот Матроскин,

У Вас как и ранее так и сейчас Access-97 работает, или что поумнее? :)
Ваше перетаскивание также посимвольно обрабатывает КАЖДУЮ строку входного прайса, выделяя термы (слова и словосочетания), и разыскивая их в БД (EAV) с подсчетом совпавших и вычислением функции похожести - "тоже самое"? На ходу добавляя новые термы... как например решали где кончается терм в строке (вот конкретно сейчас озадачен) "альб.д/рисования.карт-обл.с/к.ГУСИ-ЛЕБЕДИ" (и ни одного пробела)?

Разумеется нет. Я ведь умею выбирать
1. инструменты
2. проектные решения
так, чтобы не приходилось делать всю эту [beep].
Об том и речь, в общем-то.

Arhat109В том приложении, основу работы составляло три каталога товаров: "отПоставщиков" (оригинальные названия, или закупленные товары в примере - третье описание), прайс-лист (тот самый исходный каталог товаров) и "проданные товары".

Первичный - от поставщиков. В него добавлялись новые товары, к нему вязались параметры товаров и много чего другого. Наименование товара - параметром не являлось и хранилось полем в самой таблице каталога (плюс ещё 5 базовых полей о товаре).

В прайс переносились новые товары из каталога поставщиков или связывались дополнительной таблицей с уже имеющимся в прайсе как "синоним". То есть прайс, как такой же каталог, имел свои 6 полей о товаре (копировались) и таблицу связи с каталогом поставщиков... это разрешает переименовывать прайсовый товар "как угодно", не затрагивая наименования поставщиков...
... номер товара в прайсе - совпадает (копирование) с одним из товаров (первым) из каталога поставщиков
... "те же самые" товары поставщиков (возможно и других) попадали уже в таблицу синонимов (первый тоже), там простая связь ИдПрайса - ИдКаталогаПоставщиков...
Нет товара от поставщика - в таблице связи по этому прайсу нет линков... нет данных о товаре - не продаем и не показываем.
Нашли похожий - добавили линк, появились "свойства"
... всё легко добавляется, удаляется ... хранится "текущий снимок" поставщики - прайс.

Стоп. сколько в итоге таблиц - 3? что такое тогда "синонимы"?
Таблица товаров поставщиков - хранится вечно, данные только добавляются? или обнуляется при каждой приемке всех прайсов?
Какова структура таблицы "проданныве товары" - те самые 6 полей и все, никаких ссылок ни на что?
(самое главное) Как определяется, что этот товар никогда раньше не продавался?
Давайте лучше конкретный пример разберем.
Вот мы торгуем шапочками.
у нас есть товар "Женская фиолетовая шапочка" и 3 поставщика, которые этот товар нам могут поставлять (А, B, C).
у А этот товар называется "шапочка женская (фиолетовая)", у B - "фиолетовая шапочка", у C - "Шапочка зеленая" (ошибка в каталоге, мы совершенно точно знаем, что при заказе этого артикула нам отгрузят фиолетовую шапочку).
Причем зеленые шапочки у B и С тоже есть (хотя продажи их мы сейчас и не рассматриваем). Поставщик в прайсе, для простоты, дает нам только артикул (у каждого поставщика разный, естественно), название и цену, никаких доп. свойств нет.
В первый день продаж товар есть только у А, во второй день - у B и С, в третий - у С. шапочки заказывают все три дня,
но комплектуем и поставляем товар мы на следующий день после заказа
Как будет работать Ваша приемка прайсов, комплектация заказа, что будет с Вашими таблицами каталогов и с заказами в каждый из дней?
Могу описать, что будет с моими таблицами.



Arhat109
А теперь, ваше решение со ссылкой в строке заказа, без предварительно готовой "истории" - как будем поступать?
Сильное связывание - практически всегда - недостаток.


Не совсем понял. Если у нас до сего момента история была никому не нужна, а сейчас вдруг понадобилась - будем ее добавлять. Конечно, это будет дороже, чем делать ее с самого начала - надо будет много чего перерабатывать и изменять. Ну так надо продумывать требования к системе перед тем, как начинать ее делать, и уж подавно перед тем, как она начала работать.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105655
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Chop,
понял, отстал. остаться вруном - предпочтительней. :)и это вы говорите о переходе на личности? :)
не предъявив ни одного обвинения, цитаты...
обзываете меня вруном...


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

Кот МатроскинСтоп. сколько в итоге таблиц - 3? что такое тогда "синонимы"?
Связь 1:М , моделируемая отношением "каталог товаров(который прайс)" 1 : М "каталог товаров поставщиков".
Кот МатроскинТаблица товаров поставщиков - хранится вечно, данные только добавляются? или обнуляется при каждой приемке всех прайсов?

Обновляется при каждой загрузке. Это текущие складские остатки поставщика с количеством (складом, отдельный набор таблиц).
Кот МатроскинКакова структура таблицы "проданные товары" - те самые 6 полей и все, никаких ссылок ни на что?
(самое главное) Как определяется, что этот товар никогда раньше не продавался?
Давайте лучше конкретный пример разберем.
Вот мы торгуем шапочками.
у нас есть товар "Женская фиолетовая шапочка" и 3 поставщика, которые этот товар нам могут поставлять (А, B, C).
у А этот товар называется "шапочка женская (фиолетовая)", у B - "фиолетовая шапочка", у C - "Шапочка зеленая" (ошибка в каталоге, мы совершенно точно знаем, что при заказе этого артикула нам отгрузят фиолетовую шапочку).
Причем зеленые шапочки у B и С тоже есть (хотя продажи их мы сейчас и не рассматриваем). Поставщик в прайсе, для простоты, дает нам только артикул (у каждого поставщика разный, естественно), название и цену, никаких доп. свойств нет.
В первый день продаж товар есть только у А, во второй день - у B и С, в третий - у С. шапочки заказывают все три дня,
но комплектуем и поставляем товар мы на следующий день после заказа
Как будет работать Ваша приемка прайсов, комплектация заказа, что будет с Вашими таблицами каталогов и с заказами в каждый из дней?
... skipped... пока не нужно


поправлю пример, чтобы было понятней:
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"

... на самом деле цены, остатки, в дороге, дата прибытия и мн.др. хранилось конечно же не в каталоге... сейчас не суть важно.
... заметьте, что товаров в каталоге стало только 2 (ещё не знаем, что зеленая = фиолетовая, верно?)
... как и писал, наименование в прайс попадало по первому встречному... можно было поправить...

4. Одновременно собирается таблица синонимов товаров поставщиков (оно же) на основе критерия "похожести":
Запись1:: прайс1 = поставки1
Запись2:: прайс1 = поставки2
Запись3:: прайс2 = поставки3

... Шапочка фиолетовая - "похожа" на товар поставщика А и поэтому "объявлена" синонимом (пусть тоже руками оператора, она её купила и носит)

Всё. Часть работы "снабженца" кончилась.

Часть2: пришел новый прайс от поставщика "В" (исправили ошибку - зеленых больше нет, но есть фиолетовая):
в виде текста "шапка фиолетовая, артикул В1" (артикул тот же, так?)

каталог "поставки":
Запись1:: "отА", "шапочка женская (фиолетовая), артикул А1", ...
Запись2:: "отБ", "фиолетовая шапочка, арт.Б2", ...

...не изменились, поскольку обновился один прайс.

Запись3 -- удалена нет таких.
Запись4:: "отВ", "шапка фиолетовая, артикул В1",...

прайс-лист:
Запись1:: "шапочка женская (фиолетовая)", "артикул мой1", "мояЦена1", "скокаНеПродали + новыйОстатокВ"

таблица синонимов:
Запись1:: прайс1 = поставки1
Запись2:: прайс1 = поставки2
Запись3:: -- удалена.
Запись4:: прайс1 = поставки4

Всё. Продаем только женские, фиолетовые шапки... :)
Если продаж между этими изменениями не было, то ничего и не произошло, поменялся прайс.

Теперь продадим одну (на каждом складе больше) зеленую шапочку (от "В" до исправления ошибки):
... надеюсь помним, что "поезд ушел" и изменять тут ничего нельзя (на самом деле можно, но это уже другая песня - сторно)...

Создаем заказ (счет, и т.п.), каталог "продано" - пуст (копируем строку прайса):
"проданные товары":
Запись1:: "шапка зеленая", "артикул мой2", "ЦенаПродажи1", "кол-во=1"

"проданныеПоставки" (тоже пустой, копируем, товар есть только у поставщика "В"!):
Запись1:: "отВ", "шапка зеленая, артикул В1", ценаВ1, остатокВ1

синонимыПроданного" (тоже пусто - первая продажа...):
Запись1:: "продано1" = "проданнаяПоставка1"

Заказы (строки):
Запись1:: "продан1", ...

ЗаявкиПоставщикам:
Запись1:: "проданная поставка1"

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

Что осталось непонятным? Объем данных в каждой части - оптимально минимален, а стало быть и скорость и размеры... не чета вашим историям.

Для закрепления материала :)
Продажа зеленой (теперь уже фиолетовой) шапки (копирование, не забыли?):

"проданные товары":
Запись1:: "шапка зеленая", "артикул мой2", "ЦенаПродажи1", "кол-во=1"
Запись2:: "шапочка женская (фиолетовая)", "артикул мой1", ...

"проданныеПоставки" (тоже пустой, копируем, товар есть только у поставщика "В"!):
Запись1:: "отВ", "шапка зеленая, артикул В1", ценаВ1, остатокВ1
Запись2:: "отВ", "шапка фиолетовая, артикул В1",...

синонимыПроданного" (тоже пусто - первая продажа...):
Запись1:: "продано1" = "проданнаяПоставка1"
Запись2:: "продано2" = "проданнаяПоставка2"

Заказы (строки):
Запись1:: "продан1", ...
Запись2:: "продан2", ...

ЗаявкиПоставщикам:
Запись1:: "проданная поставка1"
Запись2:: "проданная поставка2"

... по сути - всё. Все документы отписываются абсолютно верно, ровно в той нотации, в котрой они были на момент выписки. Нет?
... статистические расчеты: тоже "не проблема"... если что-то смущает, то по параметру "артикул" - совместите самостоятельно, он в части EAV лежит (там ваще много чего лежит).

Я же уже писал: "лох должен платить"
Думаете почему все так "всполошились"?
:) :) :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105668
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosArhat109,
ниче меня не возмутило
я выше показал как мигрируют свойства (автоматизированная поддержка денормализации - по Бреду)
при том через вес граф связей
т.е. можно создать такой фасад из мигрантов, что аборигенов и не видно будет
А ссылки, моделирующие связи, тоже мигрируют? См. пункт 6)
13746867
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38105683
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

могут
на скрине ж видно - мигрирующие ссылки и мигрирующие свойства
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #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
Как правильно хранить данные
    #38106835
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosБредятина,
ну будем считать, что ВИПРОС тебя устраивает :)
Я свои оценки моделей верхнего уровня сделал:)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107089
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теперь, могу ответить на Ваши вопросы:

Кот МатроскинПогодите, а откуда взялся "АртикулМой1"? Вы вроде говорили что берется артикул первого поставщика (то есть в данном случае A1)? Или нет?
Нет, я говорил что берется название товара в моем прайсе от первого поставщика... новые товары в мой прайс втыкал автомат... это просто было правило для него "откуда брать"... не мог же он его случайно заполнить... :)

Кот Матроскинартикул-то конечно тот же - но вот название никто не менял :) Так оно и висит неправильное у поставщика полгода.
И, поскольку таблица синонимов при очистке таблиц поставщиков тоже обнулилась (так ведь?) - то при каждой приемке прайса товароведу придется указывать "Артикул С1 поставщика C - синоним такого-то нашего товара". Это же ужасно :)

1. Да, я как раз там ниже приводил этот вариант: удалили строку из прайса поставщика с зеленой шапкой и добавили с фиолетовой... так что ничего "по полгода" не висит (вы не очень внимательны)
2. Да, по сути "снабженец" при каждом обновлении прайса от поставщика "удалял" всё и пересоздавал заново его часть в общем каталоге поставок... ничего "ужасного не вижу" - это же набор запросов к БД и только снабженец - автоматический... Ваш сервер БД, постоянно шарясь в мусоре, который не убирается - делает гораздо больше работы и постоянно. Это ужасней. :)

Кот МатроскинБыло (и остается) непонятно, как впоследствии Вы ту запись из "проданных товаров" про зеленую шапку свяжете в аналитическом отчете с фиолетовыми.
По артикулу поставщика... он же одинаковый, или нет? :)

Кот МатроскинArhat109Что осталось непонятным? Объем данных в каждой части - оптимально минимален, а стало быть и скорость и размеры... не чета вашим историям.

Про скорость мы уже вроде разобрались, нет? ;)

ну, вроде как да. Объем данных оценил в предыдущем посту на Ваш вариант и свой. Он меньше на порядки, а стало быть и быстрее... надеюсь это - понятно почему меньшие объемы - быстрее? :)

Кот МатроскинАртикул - какой артикул? поставщика? Так значит, мы не свяжем в аналитике не только зеленую шапочку с фиолетовой, но и фиолетовую шапочку поставщика А с фиолетовой шапочкой поставщика B.

В смысле?
1. мне нужны аналитические отчеты по моим продажам (лучший менеджер, лучший покупатель, продаваемый мой товар и т.д.) - их делаем по моим артикулам из каталога проданные товары, можно дополнить критериями из каталога проданные поставки... не думал, что ещё и это непонятно.
2. мне нужна аналитика по поставщикам и ИХ товарам - делаем отчеты в разрезе поставщиков и/или их артикулов (можно даже в сочетании как между так и с моими - есть таблица синонимов)
3. Мне нужна аналитика по маркетинговым акциям - делаем отчеты в разрезе параметров EAV товаров... как моих так и поставщиков
... можете ваще ВСЕ критерии использовать ОДНОВРЕМЕННО (я правда не могу сказать КАКОЙ отчет получится в этом случае)...

а Вы:
Кот Матроскин Мы будем вообще не в курсе, действовала ли какая-то маркетинговая программа на этот товар (поскольку маркетинговая программа работает, разумеется, с товаром в нашем каталоге, а не с товаром поставщика).
Это я и называл "Вся аналитика идет к черту".

уже даже не столько смешно, сколько грустно... неужели настолько непонятно, что на базе этих таблиц и РА можно получить практически любые отчеты?!? Предпочитаю, что Вы задаете вопросы, чтобы другим стало понятней.

Кот Матроскин Именно. В частности, тратя на прием прайса 4 часа времени квалифицированного спениалиста (который будет в процессе определять, является ли одна шапочка аналогом другой, а главное - будет потом отвечать за это) вместо 2 минут 50-летней тетушки складского работника, которой нужно уметь распаковать файл прайса и подсунуть его программе.
У меня есть предложение - если Вы считаете эту свою систему образцом и т.п. - в следующий раз при поиске фриланса в "Работе" давайте ссылку на эту ветку. Будет такая реклама (гы-гы) "Вот какой я молодец и как клево и недорого решаю проблемы заказчика". А заказчик уж подумает, нужна ему такая клевость или ну его нафиг.

Да, да... спасибо повеселили... Нам часто звонят и просят "Роберта Медиамовича" к телефону... если компьютерный простой конечный автомат с памятью - квалифицированный специалист... :) :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107234
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChopU-geneУ меня был случай, что сначала был FK (хотя названия в строки отгрузок всё равно копировали :) ), потом решили старые товары убить, и стали работать без FK (что б первичку многолетней давности можно было печатать). Работа это все долго и без проблем.это - чудо!
а что еще, кроме печати первички, могла делать система?
:) Там у меня, на три сообщения раньше все разжевано, вроде.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107315
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну вы и понаписывали...
раз здесь все такие умные, знают страшные слова "реляционная алгебра" и еще более страшные....
найдется хоть один, который сможет ответить на простенький вопрос?... :)

задача: маршрутизация транспорта (Vehicle Routing Problems)
грузоподъемность и прочая лабуда не интересует,
чистая геометрия

интересует:
произвольное количество ТС, произвольное количество депо,
точка старта не равна точке финиша

ссылки на решение тоже принимаются
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107317
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneChopэто - чудо!
а что еще, кроме печати первички, могла делать система? Там у меня, на три сообщения раньше все разжевано, вроде."там" - это хде?
вы предлагаете мне сейчас перелопачивать весь десяток страниц обсуждения?
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107330
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chopну вы и понаписывали...
задача: маршрутизация транспорта (Vehicle Routing Problems)
грузоподъемность и прочая лабуда не интересует,
чистая геометрия

интересует:
произвольное количество ТС, произвольное количество депо,
точка старта не равна точке финиша


ты ставь задачу и цели поточнее
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107331
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и готовь бабло
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107340
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosты ставь задачу и цели поточнеевсе поставлено...
если задача не понятна...
увы и ах, с вами на эту тему разговаривать не имеет смысла
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107413
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы не растекаться мыслью
Arhat109 1. мне нужны аналитические отчеты по моим продажам (лучший менеджер, лучший покупатель, продаваемый мой товар и т.д.) - их делаем по моим артикулам из каталога проданные товары

Только вот 11 страниц Вы доказывали, что никакой связи с каталогом для элементов заказа (из которых потом вдруг выделились "проданные товары") - не нужно.

Arhat109 ваще-то, таблицы товаров и заказов не должны быть связаны. Заказанный товар должен копироваться в заказ.

Итого признаем, что без ссылки (в виде артикула)на товар все это благополучно не работает - ЧТД.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107473
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChopViPRosты ставь задачу и цели поточнеевсе поставлено...
если задача не понятна...
увы и ах, с вами на эту тему разговаривать не имеет смысла
ну я знаю дестяти постановок транспртной задачи
а тут какая та маршрутизация и депо
что надо пустые машины в депо загонять?
задача задана - если заданы ограничения и целевая функция, а так бла бла
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107498
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChopU-geneпропущено...
Там у меня, на три сообщения раньше все разжевано, вроде."там" - это хде?
вы предлагаете мне сейчас перелопачивать весь десяток страниц обсуждения? "Там" - это тама. Не предлагаю. Но спецом для Вас, ленивого, ставить линьки на две страницы назад мне тоже лень.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107506
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинЧтобы не растекаться мыслью
Arhat109 1. мне нужны аналитические отчеты по моим продажам (лучший менеджер, лучший покупатель, продаваемый мой товар и т.д.) - их делаем по моим артикулам из каталога проданные товары

Только вот 11 страниц Вы доказывали, что никакой связи с каталогом для элементов заказа (из которых потом вдруг выделились "проданные товары") - не нужно.

Arhat109 ваще-то, таблицы товаров и заказов не должны быть связаны. Заказанный товар должен копироваться в заказ.

Итого признаем, что без ссылки (в виде артикула)на товар все это благополучно не работает - ЧТД. То, что значение скопировали в другое поле, вовсе не значит . что там есть ссылка в виде FK. Ahrat109 про это с самого начала говорит (и я).
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107519
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,
Если в одной таблице хранится ключ другой таблицы - значит, на эту другую таблицу есть ссылка. То что часть подобных ссылок у Ahrat109
указывает в никуда (поскольку исходную запись в другой таблице удалили) - проявление неряшливости и только, существование ссылки это никак не отменяет.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107521
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos ну я знаю дестяти постановок транспртной задачи
а тут какая та маршрутизация и депо
это не транспортная задача :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107532
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинU-gene,
Если в одной таблице хранится ключ другой таблицы - значит, на эту другую таблицу есть ссылка. То что часть подобных ссылок у Ahrat109
указывает в никуда (поскольку исходную запись в другой таблице удалили) - проявление неряшливости и только, существование ссылки это никак не отменяет. То есть копировать значение из PK, не указывая его как FK, низяяя?

"Вот оно что, Михалыч" :)

Без таких предрассудков жить однозначно легче. Можно указывать FK (и, часто, нужно), а можно и не указывать. Самое главное - думать, когда FK нужен, а когда - нет.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107542
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChopViPRos ну я знаю дестяти постановок транспртной задачи
а тут какая та маршрутизация и депо
это не транспортная задача :)
здрастье
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107543
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosChopэто не транспортная задача :)здрастьеда пожалуйста...
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107554
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chop,

иди учись, нефиг бросать в 3 курсе
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107558
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинU-gene,
Если в одной таблице хранится ключ другой таблицы - значит, на эту другую таблицу есть ссылка. То что часть подобных ссылок у Ahrat109
указывает в никуда (поскольку исходную запись в другой таблице удалили) - проявление неряшливости и только, существование ссылки это никак не отменяет.
именно есть ссылка (т.е. связь)
но эта ссылка не ОЦ
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107572
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинU-gene,
Если в одной таблице хранится ключ другой таблицы - значит, на эту другую таблицу есть ссылка. То что часть подобных ссылок у Ahrat109
указывает в никуда (поскольку исходную запись в другой таблице удалили) - проявление неряшливости и только, существование ссылки это никак не отменяет.

Ещё раз: перечитайте внимательно: там было тока:

1. Внешний ключ (ссылка) в заказе на каталог (исходный) товаров -- ЭТО крупная ошибка проектирования.
2. У меня нет ОЦ на исходный каталог
3. ... не врите/троллите.

Это утверждается все 11 страниц. В отличии от ЧАЛ (он один из немногих тут, кто разбирается, но развлекается вводя спорщиков в заблуждение, типа - разберутся быстрее, как уж ему писал), у меня нет никакого желания рассказывать и объяснять тут всем что такое "сущность" и "связь" (похоже , что даже VIPros - в этом нифига не разбирается про остальных - ваще молчу).

Вы кажется хотели разобраться - так разбирайтесь, тут (стр1-11) практически есть всё.

U-gene: "дураков учить - только портить"... не стОит оно тут.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107585
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

ВИПРОС понимет "связь" вот как
есть типы А и Б
в структуре Б есть ссылка на А - Б(,...,А,...)
на основе этого созадется Связь("A_B{A}",A{ID},B{A}, bool RC), RC = true - ссылочная целостность присутствует, false - ссылочная целостность отсутствет
кроме этого присутствую Правила - Каскадное Удаление, Изменение
и т.д.

т.е. если есть ссылка, то объязательно есть "связь", а ОЦ и т.д. опционно
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107589
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

на самом деле все немного сложнее, так как А Классификатор
создается много связей - скоко в А есть веток
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107590
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

реальная система и пашет, остальное блабла
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107604
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109
.... у меня нет никакого желания рассказывать и объяснять тут всем что такое "сущность" и "связь" ...
Заранее спасибо, что Вы не станете этого делать.

особенно в свете того, что Вы думаете, что
Arhat109 ЧАЛ ... разбирается...

возможно, луче обратиться к другим источникам.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107632
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneКот МатроскинU-gene,
Если в одной таблице хранится ключ другой таблицы - значит, на эту другую таблицу есть ссылка. То что часть подобных ссылок у Ahrat109
указывает в никуда (поскольку исходную запись в другой таблице удалили) - проявление неряшливости и только, существование ссылки это никак не отменяет. То есть копировать значение из PK, не указывая его как FK, низяяя?

Независимо от того, укажете ли Вы СУБД, что это FK и что надо поддерживать ссылочную целостность, или не укажете,
если по этому полю Вы производите идентификацию - это все равно FK, и таблицы все равно связаны. FK и constraint, обеспечивающий ссылочную целостность - это разные вещи.
Говорить "у меня нет никакой связи между таблицами A и B - я ж constraint не указал" - значит, просто не понимать, что такое внешний ключ
И отчего-то приемка прайсов, длящаяся 4 часа, "обновляющийся на 30% в неделю прайс" и прочие макабры - с таким непониманием коррелируют.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107735
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин...FK и constraint, обеспечивающий ссылочную целостность - это разные вещи. ...

Фразу считаю шедевром, спорить не буду. :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107749
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosChop,
иди учись, нефиг бросать в 3 курсепонял, ты эту задачу не знаешь
мне интересно, можешь ли ты сказать больше, чем Пожидаев в своем дисере...
но походу ты ваще не в курсах в чем состоит вопрос...

а распальцовку будешь перед девочками из соседнего подъезда крутить
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107762
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneКот Матроскин...FK и constraint, обеспечивающий ссылочную целостность - это разные вещи. ...

Фразу считаю шедевром, спорить не буду. :)
не о чем и спорить
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107763
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chop,

лучше бы ты Беллмана изучал
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107778
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChopViPRosChop,
иди учись, нефиг бросать в 3 курсепонял, ты эту задачу не знаешь
мне интересно, можешь ли ты сказать больше, чем Пожидаев в своем дисере...
но походу ты ваще не в курсах в чем состоит вопрос...
а распальцовку будешь перед девочками из соседнего подъезда крутить
Почему Вы так категоричны. Вы просто в данный момент чем-то заинтересовались, и считаете, что уже знаете больше ViPRos?:) Ваша ссылка на работу Пожидаева
http://www.marigostra.ru/materials/disser.pdf
не корректна, хотя бы потому, что существует множество научных работ по ЗМТ:
http://www.ugatu.ac.ru/science/dissov/d6/12.04.12/yakovleva_avtoreferat.pdf
http://dis.podelise.ru/pdfview/index-41178.html
http://doc2all.ru/article/20112012_100403_plotnikov
и т.д.
И почему кто-то здесь должен сказать именно "больше, чем Пожидаев"?:)
Открывайте тему, и обсуждайте там эту прикладную задачу.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107788
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

да я нашел Пожидаева и читаю диссер
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107800
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosБредятина,
да я нашел Пожидаева и читаю диссер
Придется для объективности еще пару сотен прочитать)))
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107807
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

да я их и сотнями читаю
в силу определенных обстоятельств (а вдруг? :))
т. Пожидаве сразу редуцировал задачу вводив условие сбалансированности
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107812
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chop,

вот что пише товй Пожидаев - ну ты ему веришь

Известна задача, называемая задачей k-коммивояжёров [1, 5, 6], но в сво-
ей постановке совпадающая с постановкой ЗМТ. Количество маршрутов m
в разных вариантах задачи может быть задано заранее, либо допускается
его автоматическое определение в ходе вычислений. Вариант с определением
в ходе вычислений обычно используется при наличии дополнительных огра-
ничений (см. ниже). Если m задано заранее и равно единице, то получаем
стандартный вид ЗК.

а задача k-коммивояжёров - транспортная задача, тут уж поверь мне
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38107828
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фигня твой пожидаев
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38108108
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаПочему Вы так категоричны. Вы просто в данный момент чем-то заинтересовались, и считаете, что уже знаете больше ViPRos?:) Ваша ссылка на работу Пожидаева
не корректна, хотя бы потому, что существует множество научных работ по ЗМТ:
И почему кто-то здесь должен сказать именно "больше, чем Пожидаев"?:)
Открывайте тему, и обсуждайте там эту прикладную задачу.неуместная категоричность - один из моих многих недостатков :)
я не "заинтересовался", меня "заинтересовали" - поставили задачу :)
знать больше я в принципе не могу хотя бы потому, что в поршлом не конченный физик, а не математик и по кнутам дейтам экзаменов не сдавал :)
дисер Пожидаева - лучшее, что мне пока удалось найти по теме,
ваши ссылки, конечно интересно, спасибо, но - авторефераты
потому и спрашивал "больше, чем у Пожидаева"
тему уже открывал - никакого толкового эффекта не получилось :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38108109
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosфигня твой пожидаевпредложите что-то лучшее - с удовольствием ознакомлюсь
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38108140
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChopViPRosфигня твой пожидаевпредложите что-то лучшее - с удовольствием ознакомлюсь
ну фигня не фигня, но он там привел почти полный подбор эвристик и метаэвристик (+ точный алгоритм - МВГ)
сам Пожидаев выбрал метод кластеризации с собствееным критерием для кластеризации
так что посмотри на размерность (а у тебя размерность ни в какие ворота не лезет) и выбери себе алгоритм)
хотя фигня все эти алгоритмы
эти задачи таковы, что изменение ОДНОГО ограничения приводить к другой задаче, иногда это решается просто, а иногда не решается никак
А так советую пролистать Таха Х., Введение в исследование операций, 2001 и изучить
Logic Programming and Constraint Logic Programming

если нужны книги, то могу дать электронные книги, но многие на английском
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38108142
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chopя не "заинтересовался", меня "заинтересовали" - поставили задачу :)
знать больше я в принципе не могу хотя бы потому, что в прошлом не конченный физик, а не математик и по кнутам дейтам экзаменов не сдавал :)
дисер Пожидаева - лучшее, что мне пока удалось найти по теме,
ваши ссылки, конечно интересно, спасибо, но - авторефераты
потому и спрашивал "больше, чем у Пожидаева"
тему уже открывал - никакого толкового эффекта не получилось :)
В этом и опасность - ориентироваться на лучшее из доступного (известного).
На этом вредном принципе строится, впрочем, все образование...
Но пойти в ленинку, например, Вы, конечно, не можете. Придется ориентироваться на Пожидаева:)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38108148
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosсам Пожидаев выбрал метод кластеризации с собствееным критерием для кластеризации
так что посмотри на размерность (а у тебя размерность ни в какие ворота не лезет) и выбери себе алгоритм)
хотя фигня все эти алгоритмы
эти задачи таковы, что изменение ОДНОГО ограничения приводить к другой задаче, иногда это решается просто, а иногда не решается никак
А так советую пролистать Таха Х., Введение в исследование операций, 2001 и изучить
Logic Programming and Constraint Logic Programming
если нужны книги, то могу дать электронные книги, но многие на английском
Все равно все закончится эвристиками:) Проще уж идти по путям интернета, типа
http://lmatrix.ru/news/practice/zadacha-marshrutizacii-transporta_116.html
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38108171
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

обычно таких общих задач в жизни никто не ставить
любая задача поставленная человеком для реальных нужд базируется на его прежнем решении
потому почти все реально поставленные задачи из класса Р
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38108181
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаНо пойти в ленинку, например, Вы, конечно, не можете.конечно не могу :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38108185
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosБредятина,
обычно таких общих задач в жизни никто не ставить
мне поставили :)
Маршрутизация с несколькими депо (Multiple Depot VRP, MDVRP) без возврата в депо :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38108189
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosесли нужны книги, то могу дать электронные книги, но многие на английскомесли сможете порекомендовать, что почитать по теме - буду рад
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38108202
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chop,

ну вот начни с Таха, изучи задачу коммивояжера, ранца, общую транспортную
дойдешь до метаэвристик и ИИ почитай
Принципы искусственного интеллекта Н.Нильсон 1985

эти книги в инете можно найти
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38108203
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Искусственный интеллект. Современный подход. Рассел C., Норвинг П. хорошая книга
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38108227
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChopViPRosБредятина,
обычно таких общих задач в жизни никто не ставить
мне поставили :)
Маршрутизация с несколькими депо (Multiple Depot VRP, MDVRP) без возврата в депо :)
интересно было бы узнать, скоко платить будут?
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38108283
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosChopмне поставили :)
Маршрутизация с несколькими депо (Multiple Depot VRP, MDVRP) без возврата в депо :)интересно было бы узнать, скоко платить будут?мало денех, мало :)
задача идет как рядовая для рядового прога
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38108284
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chop,

крутая контора, если такие задачирешают рядовые прогеры :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38108376
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosChop,
крутая контора, если такие задачирешают рядовые прогеры :)дык...
причем прог пехапы
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38108731
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosViPRos,

реальная система и пашет, остальное блабла

Согласен полностью. "Пашевость системы" от "понимаемости", конечно зависит, но не так очевидно. см. "Теория второй системы" (к сожалению, автора уже не помню... кто-то из авторов IBM OS-360)... :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38108734
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин, Вы так и прояснили как у Вас решен этот вопрос:

Все таки, осталось непонятным: в случае переименования товара поставщиком - как будет происходить "процесс"?
Шаг1: на склад приняли зеленую шапку по артикулу1
Шаг2: создали свой товар шапка зеленая
Шаг3: пришел тотже артикул с другим названием... если записи НЕ удалаяются, то этот товар тупо перезапишет (артикул входит в ключ) запись о зеленой шапке. Была шапочка зеленая - стала фиолетовая.

... Ни на каких внешних ссылках ЭТО не скажется... то есть как смотрел ваш товар "шапка зеленая" в эту запись, так и смотрит теперь, только там "шапка фиолетовая"... впринципе можно и так.

Но! А теперь смотрите внимательно за вашими ручками: старые заявки поставщикам ... угу при перепечати (ихний бух запросил сверку)... стали поставками шапки ... упс. "фиолетовой". И? :)
... или поясните, не вижу как это "обойти можно"... товар по артикулу - ТОТЖЕ САМЫЙ...


...собственно о его проблеме все 11 страниц тут и идет обсуждение...
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38108777
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Кот Матроскин, Вы так и прояснили как у Вас решен этот вопрос:


Но! А теперь смотрите внимательно за вашими ручками: старые заявки поставщикам ... угу при перепечати (ихний бух запросил сверку)... стали поставками шапки ... упс. "фиолетовой". И? :)

Нет такого документа "заявка поставщикам", и поэтому перепечатывать - нечего.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38108904
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин,

Это разве аргумент? Хорошо, всегда есть приходная накладная... как её перепечатать в этой ситуации?

судя по ответу - никак. Косяк не исправляем "в принципе" (а покопаться - он не один такой наверняка), так?

ну и? :) :) :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38108942
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

В приходной накладной нет названия товара поставщика - поэтому она перепечатывается без проблем.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38108967
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин,

да поняли уже все, что никак. Косяк он и есть косяк... чего уж. "Идите нахрен Василий!" -- самое верное решение. Заметьте, что не спасает ни "история изменений" (задавал вопрос _мод-у, ответа НЕТ до сих пор), ни запреты, как у Вас или кого ещё ...

за 13 страниц трепа - не предложено по сути - ничегошеньки

... ну и кому смешнее? :) :) :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38108978
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

вопрос был тут 13745450 , ежели вчё, ещё на 7-й странице. Отсылку можно конечно посчитать ответом как признание, за отсутствием внятного. :)
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38109046
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109 всегда есть приходная накладная... как её перепечатать в этой ситуации?


Кот МатроскинВ приходной накладной нет названия товара поставщика - поэтому она перепечатывается без проблем

Arhat109 да поняли уже все, что никак

Чукча не читатель?

Cамое смешное, что описанную [высосанную из пальца] проблему Ваша система так как Вы ее описали - тоже не решает ;) Только у Вас будет во всех накладных первое (ошибочное ) название, поскольку в Ваши "проданные товары" Вы 1 артикул вставляете 1 раз
Arhat109Как определить что этот товар никогда не продавался? По артикулу. Он в моем прайсе выведен в отдельное поле - нафига? Это сквозная уникальная идентификация моего прайса. Если в проданном такого артикула нет - вставляем, есть игнорим
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38109054
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109за 13 страниц трепа - не предложено по сути - ничегошеньки правильный ответ дан Бредятиной тут: 13744027 , на 7й странице, над чем вы всё остальное время смеётесь - никому, кроме вас, не понятно.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38109316
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КМК, если история товара - микроскоп, то партионный учет - уже электронный микроскоп.
Хотя, тоже решение.
...
Рейтинг: 0 / 0
Как правильно хранить данные
    #38110373
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин,

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

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


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