我想知道将一个表中的一行与另一个表中的多行相关联的最佳实践。
假设我有以下两个表:
table_users
id | username
------------------------------------------------------------------------
1 | user1
2 | user2
3 | user3
table_texts
id | text
------------------------------------------------------------------------
1 | This is a secret text, that only user2 and user3 should see.
现在我唯一的解决方案是创建第三个表:
table_user_text_relation
id | text_id | user_id
------------------------------------------------------------------------
1 | 1 | 2
2 | 1 | 3
然后像这样选择:
SELECT
table_texts.text
FROM
table_users, table_texts, table_user_text_relation
WHERE
table_users.id = table_user_text_relation.user_id
AND
table_texts.id = table_user_text_relation.text_id
这很好......但是,如果我有 6000 个用户,每个用户都可以访问 500 个文本,那么 table_user_text_relation 就必须有 3.000.000 行才能建立多对多关系?
有没有更好/更聪明的方法来做到这一点?