Mysql Connect Two Tables (FK) - Дизайн базы данных

0

как я могу наилучшим образом соединить таблицу project_user с таблицей project_terms?

  • Один проект имеет разные категории, такие как 1,2,3,4
  • Категория хранится в категорииs_table
  • Но один пользователь может быть назначен только для категорий 1,2, а не 3,4
  • Должен ли я подключать project_table с помощью categorys_table тоже?

как я могу решить это в моем проекте базы данных?

[project_user]
id name
1  Tom

// But User Tom only assigned for the Project_id 1
// and the cat_id 2 in the project_terms table

[project_terms]
project_id (fk) | cat_id (fk)
1               | 2
1               | 3


[categorys_table]
cat_id | catname
2      | Lemon
3      | Apple



[project_table]

project_id | name
1          | FruitsProject
Теги:
database-design

2 ответа

1
Лучший ответ

Изображение 174551

  • 0
    отличная схема, можно ли вставить CategoryID 1,2,3,4, принадлежащий ProjectID 1?
  • 0
    @али - да. Пользователю может быть назначено любое подмножество комбинации категории проекта.
Показать ещё 1 комментарий
1

Не знаю, правильно ли я понял: один из возможных подходов - связать всех ваших пользователей с проектом

[project_project_user]
project_id  |   user_id
    1              1

При этом у вас есть пользователь, назначенный для проекта.

Чтобы проверить условия, вы можете ввести таблицу, которая соответствует условиям для пользователей.

[project_terms_user]
user_id   |    term_id
    1              2

Вы также можете пойти так же, как и оставить таблицу [project_project_user], поскольку соединение можно установить через [project_terms_user]. Некоторые очереди могут быть более эффективными с доступной первой таблицей, но resuls должны быть одинаковыми.

  • 0
    спасибо, хорошая идея!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню