LINUX.ORG.RU

уникальный ключ для двух таблиц в MySQL?


0

0

Можно ли сделать уникальный ключ для несколькх различных таблиц в MySQL? Дело в том, что с точки зрения логики программы есть родственная связь между классами, они наследуются от одного родителя, а в SQL это выразить нельзя, поэтому используются различные, несвязанные таблицы для каждого объекта. Хочется просто иметь фабрику, которой можно передать число, а она в соответсвие с этим числом выдаст мне нужный объект.

anonymous

>>Можно ли сделать уникальный ключ для несколькх различных таблиц в MySQL?

Ну, возьми и сделай. Одна таблица представляет из себя класс родителя с auto_increment тндексом (id), а классы потомки - в отдельных таблицах с индексом (parent_id) взятым из таблицы класса родителя из колонки id. Вроде бы очевидно, я даже не понял - в чём проблема-то?

geekkoo
()

Стандартное решение состоит в использовании третьей таблицы, которая связывает между собой первые две. Пример. У тебя есть таблицы T1 и T2 каждая из которых имеет поле ID и какие-то содержательные поля. Ты вводишь тыблицу T1_T2_LINK с полями ID, ID_T1 и ID_T2.

На первый взгляд кажется несколько громоздким, но в абсолютном большинстве случаев это успешно работает.

Если у тебя все в порядке с объектной поддержкой твоих данных, то почему бы в каждую таблицу объекта не добавить некий OBJECT_ID, который будет добываться из чего-нибудь типа SEQUENCE при создании объекта?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.