Организация связи многие-ко-многим с множеством таблиц

160
04 мая 2019, 08:50

Всем здравствуйте! Есть таблица users, а так же около 20 однотипных таблиц, но далеко не одинаковых по полям (каждая таблица это разные виды научно-исследовательское деятельности или что-то, что как-то к ней относится, то есть статьи, олимпиады, конференции, я к тому, что их точно нельзя все запихнуть в одно таблицу). Так вот в чем вопрос, таблица пользователи должна иметь с каждой из этих 20 таблиц связь многие-ко-многим, след, помимо 20 табл образуется еще +20 табл чисто для связи, что мне кажется как-то ГРОМОЗДКИ. Есть идеи как можно это все сделать более лаконично? Как вариант все таки запихать все в одну таблицу, но получается почти во всех полях будет разрешен null чтобы все работало, но это тоже как то не по феншую... Чувствую что все таки придется делать 40 таблиц...)

Answer 1

Более компактный вариант - одна таблица с 3 столбцами

  1. ID_USER, FK на users
  2. ID_TABLE или TABLE_NAME (числовой код или строковое название таблицы, на ваше усмотрение)
  3. ID_FROM_TABLE - ID из таблицы, на которую указывает второй столбец

Все три NOT NULL, и ограничение уникальности на всю тройку.

READ ALSO
MySQL TRIGGER update table

MySQL TRIGGER update table

Нужно тригером обновлять ту же таблицу, точнее одно ее поле и вписать туда количество заполненых полей - в строку где IBLOCK_PROPERTY_ID = 35 нужно вписать...

147
Сгруппировать строки

Сгруппировать строки

Всем привет!

153
Не отображается блок по центру при изменении размера окна

Не отображается блок по центру при изменении размера окна

Столкнулся с такой проблемой: при изменении размера окна, все колонки отлично становятся в центр, изменяя при том свое число в ряду, а вот...

148
Как сделать динамичный background, при заданном filter:blur?

Как сделать динамичный background, при заданном filter:blur?

помогите решить проблемуЕсть header с содержимым, ему задал background-image, "заблюрил", задал linear-gradient, чтобы filter не вылез на весь блок header создал для...

147