Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Прошу подсказки с FK
|
|||
|---|---|---|---|
|
#18+
Приветствую уважаемых коллег. Что-то совсем туплю. Разрабатываю простую базу и клиентское ПО к ней. ="DDL" Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. Пытаюсь впихнуть внешний ключ: Код: sql 1. 2. 3. 4. При тестировании на вставке в HISTRY из клиентской программы получаю логичный баг: Код: sql 1. 2. 3. 4. 5. Никак не допру, как правильно организовать ссылочную целостность в такой базе. К одной HISTRY может быть привязано несколько MOVINGS. В поле MOVINGS.M_SUM клиент сажает значение 1 или -1. Прошу подсказки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2014, 16:46 |
|
||
|
Прошу подсказки с FK
|
|||
|---|---|---|---|
|
#18+
1. After trigger, а не before. 2. Старайся минимизировать скрипты. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2014, 16:56 |
|
||
|
Прошу подсказки с FK
|
|||
|---|---|---|---|
|
#18+
Любезный, триггер у тебя before insert. от его начала и до конца никаких записей в histries нет. NEW.H_ID=GEN_ID(GENHISTRY,1); - это никак не "вставка записи" 1. тебе не надо генерировать безусловно new.h_id 2. да и сомневаюсь, что надо дублировать вставку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2014, 17:00 |
|
||
|
Прошу подсказки с FK
|
|||
|---|---|---|---|
|
#18+
ЛюбезныйCREATE TRIGGER NEWHISTRY FOR HISTRIES ACTIVE BEFORE INSERT AFTER Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2014, 17:05 |
|
||
|
Прошу подсказки с FK
|
|||
|---|---|---|---|
|
#18+
Спасибо за подсказки. Попробую подправить. Генерацию идентификаторов сделаю по условию на случай необходимости восстановления БД через скрипт; в триггере BEFORE INSERT оставлю только эту генерацию, а в триггере AFTER INSERT пропишу вставку записи в MOVINGS. kdvда и сомневаюсь, что надо дублировать вставку Вот тут не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2014, 23:53 |
|
||
|
Прошу подсказки с FK
|
|||
|---|---|---|---|
|
#18+
ЛюбезныйВот тут не понял. это я не понял. HISTRIES и MOVINGS связаны как 1:M. Т.е. мастер-деталь. Одной записи HISTRIES соответствует много записей в MOVINGS. Что это за задача такая, в которой при появлении записи в H она тут же дублируется в M, да еще и с половиной пустых полей? Ладно бы M служила в роли какой-то истории изменений. Но тогда бы структура была другая. Или это идея типа - в справочнике появился товар, и он тут же возник на складе в количестве 1 шт? Хотя, лучше спросить об этом у людей, которые шарят в данной предметной области. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2014, 00:03 |
|
||
|
Прошу подсказки с FK
|
|||
|---|---|---|---|
|
#18+
ЛюбезныйВот тут не понял. Дублирование информации является нарушением одной из нормальных форм и применять его от балды есть моветон. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2014, 00:05 |
|
||
|
Прошу подсказки с FK
|
|||
|---|---|---|---|
|
#18+
Объясню задачу. HISTRY - это история (в смысле - документ). Программа с базой составляются для архива, где они хранятся, и служат для учета их движения. MOVINGS - таблица учета движения. История поступает - сразу же на нее заводится запись в HISTRIES, а в поле MOVINGS.M_SUM заносится 1 (в триггере). Если историю надо выдать - она находится в программе, и в MOVINGS создается новая запись с M_SUM=-1. Подобным образом прописывается возврат. Выдают их довольно редко, и по сумме M_SUM можно определить, есть история в архиве или нет. Вот как-то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2014, 08:47 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38832000&tid=1563141]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
177ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 298ms |

| 0 / 0 |
