|
|
|
учет движения
|
|||
|---|---|---|---|
|
#18+
есть таблица учета движения, а также сотрудники и отделы дело в том что товар может быть взят как конкретно сотрудником так и и просто числиться за отделом. решение в лоб - кинуть связь от сотрудников в учет и от отделов в учет, но это не красиво.. есть варианты? спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2007, 06:31 |
|
||
|
учет движения
|
|||
|---|---|---|---|
|
#18+
можно также добавить одно поле которое будет содердать id или из одной или из другой таблицы и еще поле, которое будет показывать куда ушел товар... но как-то коряво и целостность не поддрежишь :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2007, 08:17 |
|
||
|
учет движения
|
|||
|---|---|---|---|
|
#18+
s uможно также добавить одно поле которое будет содердать id или из одной или из другой таблицы и еще поле, которое будет показывать куда ушел товар... но как-то коряво и целостность не поддрежишь :( Спортное предложение: а ввести для каждого отдела по одному фиктивному сотруднику-пустышке и если товар (или что там у вас) числится за отделом -- реально привязывать его к этому фиктивному сотруднику, ну а фиктивного сотрудника уже к отделу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2007, 09:54 |
|
||
|
учет движения
|
|||
|---|---|---|---|
|
#18+
интересно... ну а еще.... ??? не может быть чтобы эта задача в первый раз встречалась ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2007, 04:04 |
|
||
|
учет движения
|
|||
|---|---|---|---|
|
#18+
Мне кажется что все остальные очевидные варианты не гарантируют целостности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2007, 10:33 |
|
||
|
учет движения
|
|||
|---|---|---|---|
|
#18+
Добавить 2 новых ID_сотрудника и ID_отдела и соответсвующие FK, а так же check constraint несущий в себе идею: ((ID_сотрудника is null and not ID_отдела is null) or (not ID_сотрудника is null and ID_отдела is null)). Т.о. целостность будет обеспечена, но останется проблема с извлечением данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2007, 21:16 |
|
||
|
учет движения
|
|||
|---|---|---|---|
|
#18+
MaryCatДобавить 2 новых ID_сотрудника и ID_отдела и соответсвующие FK, а так же check constraint несущий в себе идею: ((ID_сотрудника is null and not ID_отдела is null) or (not ID_сотрудника is null and ID_отдела is null)). Т.о. целостность будет обеспечена, но останется проблема с извлечением данных. имеется ввиду 2 поля в таблице учета движения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2007, 21:18 |
|
||
|
учет движения
|
|||
|---|---|---|---|
|
#18+
MaryCatДобавить 2 новых ID_сотрудника и ID_отдела и соответсвующие FK, а так же check constraint несущий в себе идею: ((ID_сотрудника is null and not ID_отдела is null) or (not ID_сотрудника is null and ID_отдела is null)). Т.о. целостность будет обеспечена, но останется проблема с извлечением данных. Моя задача расширяется Товар может не только числиться за сотрудником или отделом, а также может быть отправлен в другую фирму, страну и так далее... добавил справочник targetType, где будут храниться описания объектов, за которымы будут числиться товары. соответсвенно структура с отдельным ФК не подходит так как таблиц что-то я в тупике ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2007, 04:13 |
|
||
|
учет движения
|
|||
|---|---|---|---|
|
#18+
s u Моя задача расширяется Товар может не только числиться за сотрудником или отделом, а также может быть отправлен в другую фирму, страну и так далее... Этого следовало ожидать. Обычно так и бывает - где два там и много :) На мой взгляд лучшее решение (если формулировать в терминах ООП) сделать общий класс "места нахождения" и унаследовать от него все остальное: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2007, 09:13 |
|
||
|
учет движения
|
|||
|---|---|---|---|
|
#18+
Свалить и сотрудников и отделы в одну таблицу. Рядом справочник структурных единиц - отдел, департамент, сотрудник. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2007, 10:21 |
|
||
|
учет движения
|
|||
|---|---|---|---|
|
#18+
Дочитал топик до конца :) 2Bogdanov Andrey +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2007, 10:26 |
|
||
|
учет движения
|
|||
|---|---|---|---|
|
#18+
Оба варианта жизненны. Вариант s u соответствует правилу когда сотрудники, отделы и т.д. первичны и лишь некоторые из них должны быть зарегистрированы как способные участвовать в товародвижении (target). Вариант Bogdanov Andrey соответсвует правилу когда объект прежде всего должен быть зарегистрирован в обобщенном реестре (Target), а затем про него введена специфическая для типа информация в одной из таблиц исключительных подтипов. При этом его способность к участию в товародвижении либо просто еще один атрибут (Target.may_move_goods) либо неисключительный подтип (table movers ... references target...). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2007, 10:56 |
|
||
|
учет движения
|
|||
|---|---|---|---|
|
#18+
А вот как я примерно поступил при аналогичном случае (в бух программе) завел таблицу в кторой данные хранятся так (скокращенный вариант). дата Сумма Количество DS1 DS2 DS3 Debet KS1 Ks2 KS3 Kredit IdDoс дата - дата проводки, сумма- суммовое выражение проводки, количество -- количественное выражение проводки, DS1 (KS1) - вещественная аналитика (т.е. отвечающая на вопрос ЧТО) DS2 (KS2) - аналитика местоположения (т.е. отвечающая на вопрос ГДЕ (УКОГО от кого)), DS3 (KS3)- аналитика основания (т.е. отвечающая на вопрос на основании ЧЕГО), IDdoc- иддокумента породившего эту запись Вот пример складского движения (т.е. передаем ВИЛЫ (ОТВЕЧАЕТ ВОПРОС ЧТО) со СКЛАДА (ОТВЕЧАЕТ НА ВОПРОС ОТКУДА)на отдел (сотрудника) ОТВЕЧАЕТ НА ВОПРОС КУДА) дата -01,01,2006 Сумма -100 Количество - 5 DS1 - ВИЛЫ DS2 - сотрудник (отдел) DS3 - 'ПУСТО' хотя можно например учтиывать из какого счета фактуры (для партионного учета) передаются ДАННЫе ВИЛЫ Debet - 10.1 KS1 - ВИЛЫ Ks2 - СКЛАД KS3 - 'ПУСТО' хотя можно например учтиывать из какого счета фактуры (для партионного учета) передаются ДАННЫе ВИЛЫ Kredit - 10.1 IdDoс - код документа ПЕРЕМЕЩЕНИЯ канечна оговорюсь что хрнаняться наименования в справочниках а не в этой результирующей таблице ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2007, 14:01 |
|
||
|
учет движения
|
|||
|---|---|---|---|
|
#18+
LamazoidА вот как я примерно поступил при аналогичном случае (в бух программе) завел таблицу в кторой данные хранятся так (скокращенный вариант). Из вашего примера совсем непонятно, как по значению того, что находится в поле DS2 понять что же это такое - сотрудник, склад, отдел или еще что-то. У вас должен быть либо единый классификатор всех объектов (то есть тот случай, который я приводил), либо вместе с полем DS2 в таблице проводок должно быть еще одно поле, описывающее тип ссылки, а у самого поля DS2 ссылка неспецифицирована. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2007, 14:47 |
|
||
|
учет движения
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andrey LamazoidА вот как я примерно поступил при аналогичном случае (в бух программе) завел таблицу в кторой данные хранятся так (скокращенный вариант). Из вашего примера совсем непонятно, как по значению того, что находится в поле DS2 понять что же это такое - сотрудник, склад, отдел или еще что-то. У вас должен быть либо единый классификатор всех объектов (то есть тот случай, который я приводил), либо вместе с полем DS2 в таблице проводок должно быть еще одно поле, описывающее тип ссылки, а у самого поля DS2 ссылка неспецифицирована. Наверное придется описывать подробно... Код объекта (сотрудника , подразделения, материала... )уникален - в пределах всей системы -это раз далее написан запрос на объединение типа (упрощенно) SELECT FIO as НАименование, кодсотрудника AS Код FROM сотрудники UNION ALL SELECT Otdelname,кодотдела AS Код FROM otdels UNION ALL SELECT НАименованиеКонтагента,кодКонтагента AS Код FROM контрагенты - затем уже этот запрос цепляется к таблице движения по полю DS2 И KS2 и вот результат: все телодвижения видны. Аналогичный запрос по материалам (основные средства, коды затрат на производстве, материалы с услугами) канечна для разных отчетов этот запрос с разным набором полей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2007, 15:10 |
|
||
|
учет движения
|
|||
|---|---|---|---|
|
#18+
к сож недостаток такого хранения - жесткая завязка что в каком поле хранится (DS1, KS1 - не может хранить подразделения и т.д.) но счас веду разработки - где пользователь вообще сам решает где и что хранить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2007, 15:12 |
|
||
|
учет движения
|
|||
|---|---|---|---|
|
#18+
LamazoidКод объекта (сотрудника , подразделения, материала... )уникален - в пределах всей системы -это раз далее написан запрос на объединение типа (упрощенно) Ну как я и сказал у вас есть единый классификатор объектов. Просто он не материализован в виде таблицы СУБД. Видимо вы проверку уникальности идентификаторов делаете вне СУБД-шным образом. Или вообще не делаете, полагаясь на, например, Oracle-овый sequence. Это конечно хорошо, но обычный unique-констрейнт понадежнее будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2007, 15:44 |
|
||
|
учет движения
|
|||
|---|---|---|---|
|
#18+
чуток изменил... Dept и Emp нужны будут для других целей, так что с общей таблицей не стал сливать в сущности Any subject who can take production будут храниться все прочие объекты, которые могут забрать продукцию для Dept и Emp targetId будет константой, для каждой таблицы своё постоянное значение ваши замечания ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2007, 06:04 |
|
||
|
учет движения
|
|||
|---|---|---|---|
|
#18+
Bogdanov Andrey LamazoidКод объекта (сотрудника , подразделения, материала... )уникален - в пределах всей системы -это раз далее написан запрос на объединение типа (упрощенно) Ну как я и сказал у вас есть единый классификатор объектов. Просто он не материализован в виде таблицы СУБД. Видимо вы проверку уникальности идентификаторов делаете вне СУБД-шным образом. Или вообще не делаете, полагаясь на, например, Oracle-овый sequence. Это конечно хорошо, но обычный unique-констрейнт понадежнее будет. Так оно и есть как в оракле (тока у меня ms скюэл+ аксес): написал функцию увеличивающую содержимое таблицы "А" на единицу и возвращающую это значение. А насчет надежности или нет -это предмет споров не очем поэтому каждый выбрает что-либо свое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2007, 06:27 |
|
||
|
учет движения
|
|||
|---|---|---|---|
|
#18+
Lamazoid Так оно и есть как в оракле (тока у меня ms скюэл+ аксес): написал функцию увеличивающую содержимое таблицы "А" на единицу и возвращающую это значение. А насчет надежности или нет -это предмет споров не очем поэтому каждый выбрает что-либо свое. GUID не рассматривали вместо счётчика? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2007, 09:23 |
|
||
|
учет движения
|
|||
|---|---|---|---|
|
#18+
Изопропил GUID не рассматривали вместо счётчика? Я еще тот акцесист а там текстовые иннер джоины по GUID почемуто работаю несколько медленнее чем по числовому - фиг знает почему. вот я по превычке и сделал обычный счетчик - еще это помогло обойтись без еще одной проблемы при переходе с акса на скюл+акс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2007, 09:57 |
|
||
|
учет движения
|
|||
|---|---|---|---|
|
#18+
s uчуток изменил...Плохо читается из-за неудачных имен. Any subject who can take production - > Any other subject who can take production Relations -> Any subject who can take production Часть targetId на самом деле targetTypeId, другие other_subject_id. Через некоторое время самому будет сложно отгадывать собственные шарады. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2007, 11:32 |
|
||
|
учет движения
|
|||
|---|---|---|---|
|
#18+
s uчуток изменил... Any other subject which/that can take production А Вы можете объяснить логический смысл таблицы Types of subjects? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2007, 12:09 |
|
||
|
учет движения
|
|||
|---|---|---|---|
|
#18+
MaryCat А Вы можете объяснить логический смысл таблицы Types of subjects? предполагается хранить типы субъектов/объектов например Department Employee External agent Company вообщем, кроме Department и Employee, неструктуированные типы субъектов/объектов и соответсвенно сами субъекты/объекты да мне самому не нравится эта схема.... уже столько раз поменял все... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2007, 04:26 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=34345556&tid=1544714]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
160ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 457ms |

| 0 / 0 |
