0

我只是想知道在多对多关系中使用 SET TYPE 是否有一些好的做法?

我有一个用户表。每个用户都有他的爱好(多对多)、书籍等,目标是:

1) 插入、更新、删除用户的爱好

2)搜索某人的爱好(例如:爱好电影的人)

乍一看,使用 SET 类型很容易实现。

有没有足够的经验告诉我可能有什么缺点?

问候

4

1 回答 1

0

使用set. 首先,它限制了集合中元素的数量。对于某些应用程序,这可能不是问题。但是,SQL 多对多关系通常是“0/1-to-n”而不是“0/1-to-n,其中 n 比 MySQL 中集合实现中允许的最大数量小一些”。

第二个缺点是集合是非常特定于 MySQL 的。这使得将代码移植到另一个数据库变得更加困难。

也许最重要的限制是关联表(替代方案)实际上是“SQL”做事的方式。它们非常强大,而且是个好主意。我担心集合会很快导致您将值存储在逗号分隔的列表中——这比使用集合更糟糕。

在某些情况下,集合很有用。特别是,它们非常有效,因此对于某些性能关键的应用程序,它们是可取的。

于 2013-09-07T14:57:13.127 回答