У меня есть таблица CUSTOMERS
и таблица CONTACTS
, соотношение между ними очевидно от одного до многих. тоже есть PROJECTS
таблица и PROJECT_CUSTOMERS
таблица с отношением один ко многим и с отношением один к одному между CUSTOMERS
и PROJECT_CUSTOMERS
. моя проблема в том, что у меня есть пятая таблица PROJECT_CONTACTS
.... Я не могу понять, какие таблицы я должен использовать в этих таблицах, в настоящее время я имею в виду таблицы PROJECT_CUSTOMERS
и CONTACTS
, это правильно или есть что-то лучше?Невозможно вычислить, как управлять внешними ключами для отношения «отношения между проектами-клиентами-контактами»
ответ
Ваше название относится к «иностранным ключам», но ваш вопрос, похоже, касается того, какие столбцы должны идти в каких таблицах.
Во-первых, решите, какие ситуации могут возникнуть и что вам нужно/нужно сказать о них. (Это будут ваши таблицы, столбцы, ключи-кандидаты, внешние ключи и ограничения.)
Каждая таблица содержит строки, которые делают предикат (шаблон оператора, параметризованный именами столбцов) истинным. Ваша конструкция, кажется, есть:
CUSTOMERS(id, ...) -- ID identifies a customer and ...
CONTACTS(id, ...) -- ID identifies a contact and ...
PROJECTS(id, ...) -- ID identifies a project and ...
PROJECT_CUSTOMERS(pid, cust_id, ...) -- project PID has customer CUST_ID and ...
PROJECT_CONTACTS(pid, cont_id, cust_id)...)
-- project PID has contact CONT_ID and project pid has customer CUST_ID and ...
Внешний ключ имеет список таблицы & столбцов, ссылающийся на таблицу и столбец списка, который формирует ключ кандидата. В нем говорится, что списки значений в первой таблице отображаются в виде списков значений во второй таблице. Если это так, объявите внешний ключ.
Я немного изменил свой ответ. 1. Я * догадался * вышеприведенные комментарии (которые определяют таблицы и столбцы) о том, что вы хотите сказать о ситуациях. * Ты * должен сказать * нам, что они на самом деле. 2. Что первое, что вы не понимаете? – philipxy
nice, теперь мой вопрос: должен PROJECT_CONTACTS.cust_id ссылаться на PROJECT_CUSTOMERS.cust_id или на CUSTOMERS.id? ..... также должен PROJECT_CONTACTS.pid ссылаться на PROJECT_CUSTOMERS.pid или на PROJECTS.id ...... отметить, что КОНТАКТЫ на самом деле являются КОНТАКТЫ (id, cust_id, .....), где cust_id ссылается на CUSTOMER.id –
«[FK] говорит, что списки значений в первой таблице отображаются в виде списков значений во второй таблице. Если это так, объявите внешний ключ». Таким образом, PROJECT_CONTACTS: Если «Project PID имеет контакт CONT_ID, а у проекта PID есть клиент CUST_ID и ...», будет ли также верно, что 'CUST_ID идентифицирует клиента и ...' для некоторых параметров '...'? Т.е. что, если 'CONT_ID' появляется в одной таблице, оно появляется в другом? И будет ли также верно, что «PID проекта имеет контакт CONT_ID, а у проекта PID есть клиент CUST_ID и ...' для некоторых параметров 'CONT_ID' и' ... '? PS Снова: пожалуйста, дайте * правильные * комментарии. – philipxy
- 1. Отношения между уровнями таблиц и внешними ключами
- 2. Laravel отношения с составными, нестандартными внешними ключами
- 3. Как вычислить граф отношения отношения между людьми?
- 4. has_many отношения с двумя внешними ключами
- 5. Laravel красноречивые отношения с внешними ключами
- 6. Laravel отношения между двумя таблицами с двумя внешними ключами
- 7. Основные отношения данных с внешними ключами на сервере
- 8. Модель отношения ISA в MySQL с внешними ключами
- 9. ColdFusion: отношения ORM с LinkTable и несколькими внешними ключами
- 10. cancancan управлять отношения Rails
- 11. hasOne связь между внешними ключами
- 12. Django- как установить отношения между различными приложениями?
- 13. перекодировки Отношения в DBML
- 14. Отношения между компонентами Android
- 15. Laravel 5 - отношения между моделями
- 16. has_one с двумя внешними ключами?
- 17. Отношения между потоками (задачи)
- 18. CakePHP отношения с различными ключами ассоциации
- 19. Как вычислить пространственные отношения из ограничивающих прямоугольников?
- 20. Невозможно создать отношения
- 21. Невозможно выяснить отношения между двумя моделями
- 22. Elixir (SQLAlchemy): отношения между 3 таблицы с составными первичными ключами
- 23. Как эффективно вычислить рекуррентные отношения в математике?
- 24. Промежуточные пробелы, разрешенные внешними ключами
- 25. Невозможно создать отношения OneToMany
- 26. Перечислите отношения таблицы SQL с составными ключами
- 27. Невозможно реализовать has_one отношения
- 28. Как получить отношения между пользователями?
- 29. Невозможно создать таблицу с двумя внешними ключами
- 30. Невозможно создать таблицу с внешними ключами
«Очевидно, один из многих»? У двух клиентов не может быть один и тот же контакт? То же самое для проектов. (С последствиями для «один к одному»). – philipxy
У двух клиентов не может быть один и тот же контакт –
Не могли бы вы далее объяснить проблему/контекст/ситуацию здесь? Как сказал @philipxy, для нас это не очевидно, что-то из вашей проблемы, мы не знаем здесь реального контекста. Чтобы просто сказать, не могли бы вы объяснить причину существования этих отношений между этими таблицами? С этим я могу вам помочь. – Loa