|
FK с одного поля на две табли
|
|||
---|---|---|---|
#18+
По ходу проектирования базы пришел к выводу, что проще работников и больных хранить в разных таблях работнички Код: sql 1. 2. 3.
больные Код: sql 1. 2. 3.
, а генератор использовать для обеих табличек один. например Код: sql 1.
И, чтобы не создавать два разных поля с FK в третьей таблице Код: sql 1. 2. 3. 4.
подумалось, а нельзя ли создать 2 FK на одно поле Код: sql 1. 2.
Есть какие-то неприятные неожиданности в будущем в этом случае? ================= Док. Win7 Ultim x64/Deb 8.7 i386: FB 3.0.2.32703, диалект 3, SS(win)/SC(Deb), Lazarus 1.9(r.55042); FPC 3.1.1 (r.36290), IBX by -Rik-; IBE 2017.4.19.2 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2017, 01:00 |
|
FK с одного поля на две табли
|
|||
---|---|---|---|
#18+
ДокЕсть какие-то неприятные неожиданности в будущем в этом случае? Пробовал вставлять? Один из FK при этом будет нерабочим (на другую таблицу). ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2017, 08:43 |
|
FK с одного поля на две табли
|
|||
---|---|---|---|
#18+
wadmanПробовал вставлять? решил сначала спросить :) т.е. одно поле - один ФК, железное правило? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2017, 09:05 |
|
FK с одного поля на две табли
|
|||
---|---|---|---|
#18+
Докт.е. одно поле - один ФК, железное правило? Такого правила не знаю. ФК это ссылочная целостность и ты пытаешься вставить значение, которое указывает на одну из двух таблиц . То есть один из двух ФК взбунтуется, сказав, что в его таблице такого значения нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2017, 09:10 |
|
FK с одного поля на две табли
|
|||
---|---|---|---|
#18+
Док, ты для начала попробуй объявить два внешних ключа с одного поля одной таблицы на две другое. если сможешь - приходи спрашивать, будет ли оно работать.... Большинство СУБД тебя пошлют ещё на этапе попытки создать второй FK. Оставшиеся - пошлют в момент попытки вставить запись в твою чудо-таблицу... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2017, 09:10 |
|
FK с одного поля на две табли
|
|||
---|---|---|---|
#18+
Добрый Э - ЭхБольшинство СУБД тебя пошлют ещё на этапе попытки создать второй FK. уже был послан Но решил, это потому, что в табле уже есть несколько записей. Ну, на нет и суда нет. Спасибо за разъяснения. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2017, 09:18 |
|
FK с одного поля на две табли
|
|||
---|---|---|---|
#18+
Док, Выход - два поля FK_PEOPLE и FK_STAFF, каждое из которых ссылается на свою таблицу. Добавляешь вычисляемое поле ID_TRUE_PEOPLE или заранее рассчитывай его через триггер: ID_TRUE_PEOPLE = IIF(NEW.ID_PEOPLE IS NOT NULL, NEW.ID_PEOPLE, NEW.ID_STAFF); ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2017, 10:08 |
|
FK с одного поля на две табли
|
|||
---|---|---|---|
#18+
CyberMaxID_TRUE_PEOPLE = IIF(NEW.ID_PEOPLE IS NOT NULL, NEW.ID_PEOPLE, NEW.ID_STAFF); Тогда уж coalesce. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2017, 10:10 |
|
FK с одного поля на две табли
|
|||
---|---|---|---|
#18+
wadman, Да. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2017, 10:16 |
|
FK с одного поля на две табли
|
|||
---|---|---|---|
#18+
wadman, CyberMax спасибо, конечно, но нафиг :) Сделал в табле TBL_PEOPLE поле IsStaff для маркировки работников, которые тоже могут быть больными. А в запросе решил джойнится к TBL_PEOPLE 2 раза под разными алиасами. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2017, 10:28 |
|
FK с одного поля на две табли
|
|||
---|---|---|---|
#18+
05.06.2017 1:00, Док пишет: > По ходу проектирования базы пришел к выводу, что проще работников и больных хранить в разных таблях неправильно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2017, 12:53 |
|
FK с одного поля на две табли
|
|||
---|---|---|---|
#18+
Док, у нас таблицы: объект идентификации. егойный ПК - тот самый ид. на него ссылаются сотрудники, клиенты, организации. у каждого ПК и ФК на объект в одном флаконе. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2017, 15:07 |
|
FK с одного поля на две табли
|
|||
---|---|---|---|
#18+
pastorу каждого ПК и ФК на объект в одном флаконе Я примерно понял о чем речь, но сам еще до таких высот не эволюционировал :) А можно простейшую схему привести? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2017, 20:00 |
|
FK с одного поля на две табли
|
|||
---|---|---|---|
#18+
Докpastorу каждого ПК и ФК на объект в одном флаконе Я примерно понял о чем речь, но сам еще до таких высот не эволюционировал :) А можно простейшую схему привести? Код: 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. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2017, 21:19 |
|
FK с одного поля на две табли
|
|||
---|---|---|---|
#18+
pastor, спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 00:22 |
|
FK с одного поля на две табли
|
|||
---|---|---|---|
#18+
Док, у нас так сделано: общая таблица Люди (к ней цепляются адреса, документы и проч.), и функциональные таблицы Студенты и Сотрудники, которые ссылаются на Людей. Никаких проблем с ФК. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2017, 22:24 |
|
FK с одного поля на две табли
|
|||
---|---|---|---|
#18+
mvb, так у тебя студенты и сотрудники цепляются на людей, а ТС хотел, чтобы люди цеплялись на сотрудников и студентов. Что называется "почувствуй разницу" (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2017, 04:34 |
|
FK с одного поля на две табли
|
|||
---|---|---|---|
#18+
mvbу нас так сделано я уж понял, что иногда стоит заводить суррогатные таблицы, чтобы впихнуть невпихуемое :) Спасибо, вопрос исчерпан ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2017, 09:25 |
|
FK с одного поля на две табли
|
|||
---|---|---|---|
#18+
07.06.2017 4:34, Добрый Э - Эх пишет: > так у тебя студенты и сотрудники цепляются на людей, > а ТС хотел, чтобы люди цеплялись на сотрудников и студентов. > Что называется "почувствуй разницу" (с) а патаму шо! Док нифига не проводил декомпозицию задачи, с формализацией сЦущностей. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2017, 12:45 |
|
|
start [/forum/topic.php?fid=40&msg=39467768&tid=1561548]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
151ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 322ms |
total: | 574ms |
0 / 0 |