Membership 的关系怎么设计DB

请问大规模的membership 关系, 如何存储和快速查询 和 删改? 例如, Discord/Slack channel 有哪些人, Netflix的某个Genre 有多少人喜欢。

我知道有些NoSql 可以支持set 或者 list 做为data type, 但是restriction很大, 例如Cassandra 只支持65536个 entry in a set。 DDB 只支持400KB per item。

SQL 倒是可以用bridge table: Many-to-Many Relationship in Database Design - DZone Database 这是不是最好的方法了?

希望大家能提供下industry 上是怎么处理这种情况的。

多谢!

要看这个数据读写时候 pattern 怎么样。大多数是读多写少的情况,就注意是怎么读的。Slack channel 读的时候主要是一种情况 - 从用户找 slack channel (如果不需要 fanout 就不需要从 slack channel 看有哪些用户),这样就用一张 bridge table 存用户到 slack channel mapping。Netflix genre,需要从用户读取到哪些 genre 这个用户喜欢,考虑到 genre 的 cardinality 不大,可以存一个 list 或者 set。