1

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

Categories_id name   Parent_Categories 
    1    art     0 
    2    entertainment  0 
    3    music    2 
    4    dance    3 
    5    songs    3 

теперь мне нужно создать имена 2-й таблицы как Users_table .. но условие ... 1) Мы можем назначить для каждого пользователя идентификатор нескольких категорий ... 2) у нескольких пользователей могут быть одинаковые категории. Ниже представлена ​​текущая структура базы данных. Есть ли лучший способ сделать это?

User_Id  Categories_id 
    1   4,5 
    2   1,2 
    3   1,2,4 
    4   1,5,4 
+0

Может создать сводную/отображение таблицы для этого сценария. – Avidos

ответ

0

Пользователи:

- UserID 

UserCategory:

- UserID 
- CategoryID 

Категория:

- CategoryID 
- ParentID 
0
create table Users_table (User_Id integer,Categories_id integer, primary key(User_Id,Categories_id), foreign key (Categories_id) references categories(Categories_id); 

...

primary key(User_Id,Categories_id) < - идентификаторы нескольких категорий могут быть назначены каждому пользователю и ограничивают только дублирование строк с одинаковым значением. Таким образом, вы можете иметь несколько пользователей, имеющих одну категорию, и пользователя с несколькими идентификаторами категорий .. но не 2 строки с таким же идентификатором пользователя и тот же идентификатор категории

foreign key (Categories_id) references categories(Categories_id) < - и этой категории ссылок идентификатор категории таблицы

0

Использование Нормализация в этом случае, как следует -

1) пользователи таблица - идентификатор - имя пользователя

2) Категории Таблица - идентификатор - parent_category_id

3) user_categories стол - ID - user_id - categories_id

 Смежные вопросы

  • Нет связанных вопросов^_^