Ключи между таблицами MySql

215
28 декабря 2017, 22:25

Здравствуйте. Может кто сталкивался и сможет подсказать: есть БД MySql в ней 2 типа таблиц: 1-ый - таблицы где лежат записи разных документов разных форм(на 10 разных форм есть 10 разных таблиц). 2-ой - 1 таблица, которая хранит список этих форм и их описание. Нужно связать эту таблицу с другими таблицами: 1 запись из этой таблицы ссылается на таблицу формы т.е. внешний ключ ссылается имя таблицы. Может я мудрю и можно сделать проще... Думал внести в первую таблицу поле с типом формы, но тогда во все записи любой формы нужно добавить поле с типом и получится избыток информации.

Answer 1

Если у вас данные 10 различных типов документов уже находятся в 10 различных таблицах - у вас нет возможности ссылаться на них из посторонней таблицы как-либо иначе, чем через 10 различных полей, каждое из которых является foreign key для одной из 10 таблиц. В противном случае вы нарушите условие транзитивности данных (3-я нормальная форма), и если нарушение этого условия для неключевых атрибутов - в общем норма, то для ключевых недопустимо (представьте как потом SQL-запросы для выборки будут выглядеть).

Чтобы зделать красиво, можно добавить 11-ю таблицу, назвав ее например Document, в неё спрятать все эти 10 ссылочных полей, и на каждую запись в одной из 10-ти исходных таблиц сформировать (скриптом сгенерить) запись в 11-й таблице (в дальнейшем для автоматизации можно зделать триггеры на каждую из 10 таблиц). Далее на основании этой таблицы зделать view типа DocumentV, в которую спрятать всю эту ссылочную муть с 10 таблицами.

Таким образом для всех других таблиц и отношений будет одна таблица Document, для запросов выборки - один view DocumentV.

READ ALSO
Как в workbeanch при импорте в базу MySql поставить паузу

Как в workbeanch при импорте в базу MySql поставить паузу

В общем вот вопрос: "Можно ли поставить на паузу импорт в MySql и как?" Импортирую WorkbenchЕМ

164
Поиск “дублей” в таблице MySQL в поле utf8_general_ci

Поиск “дублей” в таблице MySQL в поле utf8_general_ci

Имеем к примеру такой запрос

321
Непонятная структура

Непонятная структура

Товар, который может принадлежать нескольким категориям одновременноЗапросы: (1) достать все товары вместе с их категориями, (2) достать товар...

231
Алгоритм создание вложенный запросов в MySql

Алгоритм создание вложенный запросов в MySql

Всем приветЕсть вот такое вот задание

211