|
IG many to many
|
|||
---|---|---|---|
#18+
Всем привет! Предметная область вымешленная. Отношение Многие ко Многим. Две сущности Люди и Компании, свзанные таблицей Люди_Компаии, показывает сколько денег заработал человек в конкретной компании. У Комании есть Тип. Один человек может работать в разных Компаниях одного Типа. В одной Комании может работать несколько Людей. Один сотрудник может в разных компаниях одного типа заработать разное количество денег. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Запрос для IG: Код: sql 1. 2. 3. 4. 5. 6. 7.
Менеджер будет работать с IG и проставлять сумму, которую человек заработал в конкретной компании. Проблема в том, что для IG нет уникального столбца: ID людей и компаний могут повторятся в данном запросе(тк М:М); ID Люди_Компаии может быть NULL, так как нет записи о том сколько он заработал. Заработанную сумму проставляют в IG, после чего должна создаваться запись в таблице Люди_Компаии. Запись в таблице Люди_Компаии создается, но IG не может корректно это отрендерить так как нет уникального поля. Я решил эту проблему тем, что создал суррогатное поле Человек_Компания, так как один человек может в одной компании получить только одну зарплату. Кто сталкивался с реализацией М:М в IG, прошу откомментировать, может есть что то более изящное. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 21:07 |
|
IG many to many
|
|||
---|---|---|---|
#18+
Зачем такой гемморой. Просто создайте в IG еще hidden поле ROWID типа ROWID и повесьте на него PK. Тогда IG корректно будет работать в режиме EDIT. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 14:31 |
|
IG many to many
|
|||
---|---|---|---|
#18+
Хотя тут подумал, нужно будет создать вьюху и повесить на нее instead of триггер. И уж использовать вьюху в IG и, как я писал, добавить ROWID для добавления возможности редактирования. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 17:10 |
|
IG many to many
|
|||
---|---|---|---|
#18+
ROWID и если надо использовать PL/SQL Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2020, 17:31 |
|
IG many to many
|
|||
---|---|---|---|
#18+
blkangel, ROWID по какой их трех таблиц? Люди и Компании не уникальны, и ROWID у них будут одинаковы. А у Люди_Компании может быть так что NULL, когда сотрудник работал в компании а зп еще не проставили. Со вьюхой пока не пробовал, но думаю там такой же эффект будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.05.2020, 10:43 |
|
|
start [/forum/topic.php?fid=50&fpage=4&tid=1873893]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 248ms |
total: | 378ms |
0 / 0 |