最好将多个值存储在表列中,还是创建新表?

TDa*_*e00 0 mysql mysqli

我对MySQL数据库很新,所以在这里寻找关于最佳方法的一些建议.

我有一个用户表,用于存储有关用户的数据.假设我需要存储的其中一件事是关于用户使用的所有小部件制造商.我需要获取有关每个制造商(来自制造商表)的数据,以呈现给用户.在用户表中,我应该将用户制造商作为多个值存储在如下所示的列中,然后将其拆分以创建我的查询?

用户

id  | username  | password | widget_man_id | etc
1   | bob       | ****     | 1,4,3         | some data
2   | don       | *****    | 2,3,1         | some more data
.
.
Run Code Online (Sandbox Code Playgroud)

或者我应该创建一个新表,其中包含所有用户有关他们使用的制造商的信息?像这样......

user_man

id  | manufacturer  |  user  |  order
1   | 1             |  1     |  1
2   | 4             |  1     |  2
3   | 3             |  1     |  3 
4   | 2             |  2     |  1
5   | 3             |  2     |  2
6   | 1             |  2     |  3
.
.
Run Code Online (Sandbox Code Playgroud)

然后为给定用户执行这样的查询...

select manufacturer, order from user_man where user=1
Run Code Online (Sandbox Code Playgroud)

**另外,我如何根据订单字段按降序对结果进行排序?

Tom*_*Tom 5

不要将多个值放入单个列中,然后将它们拆分出来.查询速度要慢得多,因为每个值都无法编入索引.你最好有一张桌子,每张桌子都有一张单独的记录.您可以索引此表,您的查询将运行得更快.