我的数据库中有两个表...名为categories
的第一个表包含所有父类别和子类别......如下图所示......
Categories_id name Parent_Categories
1 art 0
2 entertainment 0
3 music 2
4 dance 3
5 songs 3
现在我必须创建第二个表名为Users_table
..但条件是......
1)我们可以为每个用户分配多个类别ID ...
2)多个用户可以拥有相同的类别。
下图是当前的数据库结构..还有更好的方法吗?
User_Id Categories_id
1 4,5
2 1,2
3 1,2,4
4 1,5,4
答案 0 :(得分:0)
用户:
- UserID
UserCategory:
- UserID
- CategoryID
类别:
- CategoryID
- ParentID
答案 1 :(得分: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)
< - 可以为每个用户分配多个类别ID,并且仅限制具有相同值的行的重复。因此,您可以让多个用户具有相同的类别,并且用户具有多个类别ID。但不是2行具有相同的用户ID和相同的类别ID
foreign key (Categories_id) references categories(Categories_id)
< - 此类别ID引用类别表
答案 2 :(得分:0)
在这种情况下使用标准化,如下所示 -
1)用户表 - ID - 用户名
2)类别表 - ID - parent_category_id
3)user_categories表 - ID - 用户身份 - categories_id