Вот собственно проблема. Представим детский сад. Малыша нужно перевести из одной группы в другую.
Собственно получается: .....Малыши............................ Группы -------------------................ ---------------------- имя_и_прочее.................Название группы ид_малыша..........................ид_группы ..........|....................................|....| ..........|....................................|....| ..........|....................................|....| ..........|....................................|....|.................перемещение малышей ..........|....................................|....|.................------------------------------- ..........|....................................|....|---------------ид_принявшей_группы ..........|....................................|---------------------ид_отдавшей_группы ..........|--------------------------------------------------------ид_малыша Как такое сотворить? Если возможно, то как будет выглядеть запрос который выведет имена групп? _________________ Ищи баги в себе!!! |
честно говоря я не понял схемку. можно структуру таблиц и связи хотя бы из MS VISIO? _________________ Ин дер гросен фамилие нихт клювен клац-клац |
child (child.id, child.name, child.birth, group_id) дитё с идентификатором, именем, днем рождения, идентификатором группы
group (group.id, group.name) группа с идентификатором, именем trans (trans.id, child_id, gr_old_id, gr_new_id) перемещения с идентификатором, идентификатором дитя, идентификатором старой и новой группы вопрос про запрос ниасилил - примерно возможные: select group.name from group - имена групп select child.name from group, child where child.group_id=group.id and group.name='божий одуванчег' дети из одуванчега Добавлено спустя 7 минут 7 секунд: почему ты не связал сразу ребенка и группу мне не понятно твою связь из названия темы фтопку _________________ |
да что за день то такой
SQL Server evaluation period has expired. Добавлено спустя 29 минут 25 секунд: vanish писал(а): child (child.id, child.name, child.birth, group_id) дитё с идентификатором, именем, днем рождения, идентификатором группы
group (group.id, group.name) группа с идентификатором, именем trans (trans.id, child_id, gr_old_id, gr_new_id) перемещения с идентификатором, идентификатором дитя, идентификатором старой и новой группы вопрос про запрос ниасилил - примерно возможные: select group.name from group - имена групп select child.name from group, child where child.group_id=group.id and group.name='божий одуванчег' дети из одуванчега Добавлено спустя 7 минут 7 секунд: почему ты не связал сразу ребенка и группу мне не понятно твою связь из названия темы фтопку неудачный пример, согласен Возьмем другой пример, с товаром на складах. Нужно с одного склада переместить N-колво товара на другой структура: _________________ Ищи баги в себе!!!
|
Sas'OK
И в чем сложность? _________________ Скажи мне чей Крым, и я скажу кто ты. |
что-то с постановкой не то. вообще задача какая стоит и что надо сделать?
так-то вроде делают что-то типа склад-товар и лог перемещений. а тут предлагается вычислять наличие на складе товара из таблицы перемещений. этож башню свернуть скл-серверу ) _________________ Ин дер гросен фамилие нихт клювен клац-клац |
надо просто ещё таблиц добавить. _________________ Скажи мне чей Крым, и я скажу кто ты. |
andy ice писал(а): вообще задача какая стоит и что надо сделать?Есть такой документ "Перемещение", вот его и надо реализовать, там указываются "склад отправителя", "склад получателя" ну и товар соответственно, вот этот документ нужно хранить в БД чтобы видно было потом что куда и как перемещалость andy ice писал(а): а тут предлагается вычислять наличие на складе товара из таблицы перемещений. этож башню свернуть скл-серверу )Ну вообще то да. Я подумал также, поэтому сделал табличку остатки, там при поступлении и перемещении меняются данные. Но вопрос остался как хранить документы перемещения. Добавлено спустя 1 минуту 10 секунд: Leon писал(а): Sas'OK
И в чем сложность? в SQL запросе. Можешь показать? Чтобы выводился склад поставщик и получатель, у меня не получилось _________________ Ищи баги в себе!!! |
Sas'OK писал(а): документы перемещенияэто просто лог действий. тупой такой лог - с одного склада на другой переместили товар и в лог записали, стркутра лога типа from_sklad_id, to_sklad_id, tovar_id, count, date, user_id _________________ Ин дер гросен фамилие нихт клювен клац-клац |
А, вроде понял, что ты хочешь.
Добавлено спустя 2 минуты 11 секунд: ему надо подтягивать название складов из таблицы. Добавлено спустя 48 секунд: Sas'OK слыхал про вложенные запросы? _________________ Скажи мне чей Крым, и я скажу кто ты. |
Leon писал(а): А, вроде понял, что ты хочешь.
ему надо подтягивать название складов из таблицы. точно Leon писал(а):
слыхал про вложенные запросы? разумеется, можешь дать запрос как должно быть? как думаешь я заносил в таблицу peremesh_tovar? получал ИД и потом тупо вбивал? одним запросом делал я всегда думал что они ПодЗапросы называются _________________ Ищи баги в себе!!! Последний раз редактировалось: Sas'OK (2008.06.02 22:47.41), всего редактировалось 1 раз |
да хоть как назови _________________ Скажи мне чей Крым, и я скажу кто ты. |
извините что загадками, короче при запросе должно получиться:
склад_получатель........................склад_поставщик......................прочее название склада получателя.....название склада поставщика........ну и прочие столбцы _________________ Ищи баги в себе!!! |
Sas'OK писал(а): Есть такой документ "Перемещение", вот его и надо реализовать, там указываются "склад отправителя", "склад получателя" ну и товар соответственно, вот этот документ нужно хранить в БД чтобы видно было потом что куда и как перемещалость если справку, то что-то типа (кстати таблицы permesh и peremesh_tovar можно объединить) SELECT p.*, pt.peremesh_tovar_id, pt.tovar_id, pt.kol_vo, t.tovar_name, s1.sclad_name poluch_name, s2.sclad_name post_name FROM peremesh p LEFT OUTER JOIN peremesh_tovar pt ON p.peremesh_id=pt.peremesh_id LEFT OUTER JOIN tovar t ON pt.tovar_id=t.tovar_id LEFT OUTER JOIN sclad s1 ON p.sclad_poluch_id=s1.sclad_id LEFT OUTER JOIN sclad s2 ON p.sclad_post_id=s2.sclad_id _________________ Ин дер гросен фамилие нихт клювен клац-клац |
какая херь _________________ Скажи мне чей Крым, и я скажу кто ты. |
andy ice писал(а): помедитировал. это надо просто справку о перемещениях?Вот спс, как нибудь научишь медитировать? :- andy ice писал(а): t;]если справку, то что-то типа (кстати таблицы permesh и peremesh_tovar можно объединить)Не стал этого делать, т.к. справка оч часто нужна (а туда заношу и сумму и дату, ну короче все что нужно для поверхностного), а товар раз в год, так что пусть остаются так _________________ Ищи баги в себе!!! |
Мне кажется автор ветки несколько запутался. Типичная ошибка - глагол считается сущностью. Сегодня проверял контрольную эта ошибка сплош и рядом. Как бы я со складами решал проблем (в упрощенном варианте, конечно). Есть список складов (таблица), есть список товаров (таблица). Между ними имеется ассоциативная связь, которая и выражает действие - перемещение товара с одного склада на другой. Это такая таблица посредник. В простейшем случае она состоит всего из двух полей - внешних ключей для первой и второй таблицы. Строка этой таблицы выражает собой перенос товара из одно склада на другой. Вот и все. _________________ http://asm.shadrinsk.net |
Vladislav_133
Vladislav_133 писал(а): В простейшем случае она состоит всего из двух полей - внешних ключей для первой и второй таблицы.Это как? Складов минимум 2. Значит поля нужно 3 _________________ Скажи мне чей Крым, и я скажу кто ты. |
Нет. Попробую изобразить.
Таблица Склады {id, name, ...} Таблица Товары {id,name, ...} Таблица прихо-расход {id, id1, id2, ...} таблица приход_расход имеет два внешних ключа - id1 - для складов, id2 - для товаров. При перемещении товара добавляются две записи уход и приход. В простейшем случае все. Если товар приобретают, продают, списывают, то одна. Все очень примитивно, но модель работает. Т.е. конечно вы правы. Полей для полноценной работы надо больше. Но имел в виду минимум. |
Vladislav_133
тема - о перемещениях. 2 склада. Добавлено спустя 31 секунду: а хотя. Но это непрактично Добавлено спустя 38 секунд: перемещение - 1 операция. У Вас получается 2. Добавлено спустя 36 секунд: нет связи между приходом на 1 склад и расходом с другого. непрактично. _________________ Скажи мне чей Крым, и я скажу кто ты. |
Да хоть пятьдесят. Я же говорю пара записей указывает перемещение с одного склада на другой.
Добавлено спустя 55 секунд: И для групп такая схема подойдет. _________________ http://asm.shadrinsk.net |
Vladislav_133
где связь между ними? _________________ Скажи мне чей Крым, и я скажу кто ты. |
как минимум 3 поля надо. Извините. _________________ Йа - водоросль. |
Vladislav_133 писал(а): При перемещении товара добавляются две записи уход и приходостатки на складах будут правильными, но сама операция не отразится. А людям обчно это нужно. _________________ Скажи мне чей Крым, и я скажу кто ты. |
В таблицу прихо-расход добавляется запись
(id, 2,4,0,80) - расход (0 - означает расход) со склада с номером 2 товара с номером 4, 80 - количество (id, 5,4,1,80) - приход (1 - означает приход) на склад с номером 5, товара с номером 4. Вот и вся схема перемещения. Запись может содержать также номер и дату документа по которой осуществляется эта операция и всякую всячину, важную для бухгалтерии. Все отразится в таблице приход-расход и в окне пользователя. Ему ведь не надо знать, что в какой таблице хранится. Последний раз редактировалось: Vladislav_133 (2008.06.05 21:06.05), всего редактировалось 1 раз |
Vladislav_133 писал(а): Запись может содержать также номер и дату документа по которой осуществляется эта операция и всякую всячину, важную для бухгалтерии. в 2х полях. _________________ Скажи мне чей Крым, и я скажу кто ты. |
ой, блин помню я эту базу на бэйсике... . _________________ Йа - водоросль. |
Vladislav_133
с точки зрения движений - Вы правы, с точки зрения практичности - нет. _________________ Скажи мне чей Крым, и я скажу кто ты. |
Почему в двух полях. В таблицу прихо-расход помещайте хоть сколько полей. _________________ http://asm.shadrinsk.net |
Leon
+1 _________________ Йа - водоросль. |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы можете скачивать файлы |