如果您想在数据库中将每一条数据存储为唯一的条目(行),那么像您已经做的那样,定制表是一个非常好的解决方案。
另一方面
可以使用usermeta表执行完全相同的操作,存储多个与唯一项同名的元键,
usermeta表中的条目如下所示:
umeta_id user_id meta_key meta_value
1 1 follower user_1
2 1 follower user_2
3 1 follower user_3
4 1 randomkey abcdef
5 1 follower user_4
正如您在上面的示例中所看到的,usermeta表中的第四个条目用于一段完全无关的元数据,因此您将要处理的是,所有类型的数据都混合到一个表中。随着时间的推移,如果此表除了follow数据之外还包含大量额外的元信息,那么它可能会影响查询的性能。
我个人会创建一个自定义表,只存储user\\u id和follower\\u id(也可能是follower\\u用户名)。
primary_id user_id follower_id follower_username
1 1 2 name2
2 1 2 name2
3 2 5 name5
4 1 8 name8
5 1 3 name3
将用户名与ID一起存储是可选的,但很有用。
然后,我还将在usermeta表中存储跟踪某个用户的所有人相对于单个用户的序列化值,您可以通过wp\\u cron定期执行此操作。如果需要显示跟踪他们的给定用户,可以检索单个usermeta meta\\u密钥,取消序列化数据并相应地显示它。
如果您碰巧还存储了关注者的用户名,那么用户的序列化数据也将包含用户名,这将避免您需要在返回的ID上运行查找,如果您只需要显示用户名,还可能需要显示指向用户的链接。
如果您需要执行任何额外的数据检索和操作(您可以单独从用户名执行),则会返回ID,但ID总是很方便,对我来说,它是首选。
Of course all of this is highly generalized because it really depends on your extended use case as to what you may do.