Оператор SQL для связывания таблицы - PullRequest
1 голос
/ 06 июля 2011

у меня 2 таблицы

collection
==========
collection_id (primary key)
collection_name
collection_type

collectable
===========
collectable_id(primary key)
collectable_name
collectable_type
collectable_collection

Что такое оператор SQL, так что collectable_collection может принимать только как ввод collection_id? Извините, если это слишком просто. Это изменение относится к столбцу: collectable_collection или к таблице: collectable?

Я использую базу данных MySQL.

Ответы [ 3 ]

2 голосов
/ 06 июля 2011

Было бы лучше, если бы вы реализовали это на уровне приложения, чем с SQL.Просто проверьте, является ли id для вставки в collectable_collection значением collection_id, а затем выполните операцию вставки, если у collectable_collection более одного collection_id.

РЕДАКТИРОВАТЬ

Если collectable_collection имеет только один идентификатор, то вы можете использовать Foreign Key.Обратитесь к руководству , для получения дополнительной информации о том, как его использовать

0 голосов
/ 06 июля 2011

Вы можете использовать инструмент управления базами данных, например официальный MySQL Workbench . Там вы можете использовать пользовательский интерфейс для внесения любых изменений в базу данных.

Если вы хотите использовать вместо SQL, вы можете использовать следующее:

ALTER TABLE collectable
ADD CONSTRAINT FK_collectable_collection
FOREIGN KEY (collectable_collection)
REFERENCES collection (collection_id)

При желании можно добавить ON DELETE CASCADE или ON DELETE SET NULL для автоматического удаления затронутых строк в таблице collectable или установить ссылки на NULL при удалении строки в таблице collection.

0 голосов
/ 06 июля 2011

используйте coolection-id в качестве ключа foreig в собираемой таблице, вставка выполняется только тогда, когда collection_id будет присутствовать в таблице сбора.

А если вы хотите вставить несколько значений, создайте таблицу журнала для сбора, и она будет использоваться для получения значений сбора в таблице для сбора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...