php postgresql多条,php – 在PostgreSQL中存储一对多或多对多关系的最佳方法是什么?...

博客讨论了如何将AJAXChat集成到项目中,并优化其用户和频道管理。目前的实现是从文件中读取用户和频道,但作者计划改为直接从数据库获取。设计包括频道表、组表和用户表,通过用户ID和组ID关联。作者担心当前的实现效率不高,因为需要遍历字符串ID。寻求更高效的方法和实现代码建议。
摘要由CSDN通过智能技术生成

我目前正在将开源聊天(

AJAX Chat)集成到另一个项目中.现在,聊天默认只从文件中获取有效用户和有效频道,但是当你拥有一个不断变化的用户数据库时,这显然不是理想的.

所以,我想这样做,以便聊天直接从数据库加载用户和频道信息.我认为设计应该如下(如果你有不同的感受,请告诉我):

>我们有一些聊天频道(公共,营销等……)

>然后我们将小组分配到频道(如公关团队1,IT人员等……)

>然后我们将用户作为组的一部分,在某些情况下直接分配给频道.

我正在考虑使用以下表格实现上述内容:

频道表:

|----|Channel_Name||Channel_ID||Groups_Assigned||Users_Assigned|----|

|----|---Public---||-----0----||---1,2,3,4,5---||-----3,4------|----|

.

.

.etc...

注意:分配的组表包含分配给通道的组的组ID,而分配的用户包含不属于分配的组的用户的ID.

群组表:

|----|Group_Name||Group_ID||Users_Assigned|----|

|----|---Team1--||----0---||------5,10----|----|

.

.

.etc...

对不起画的桌子很抱歉.

现在,通过上面的实现,当用户登录时,程序将获取用户id(来自users表),然后在groups表中搜索包含用户id的所有组,最后搜索通道表对于包含组(用户所属的组)或直接分配给用户的通道的所有通道.

我的想法是可能的,但似乎有点,呃,效率低下.因为我必须以1,2,3 ….格式存储指定的ID(组和用户),所以我必须使用PHP的explode()或其他可以搜索字符串的PostgreSQL函数.我很可能会存储一组数组,然后一次循环遍历它们,这对我来说似乎很慢.

或者,我可以为每个用户创建一个布尔列,但这会导致列太多,并且我不想在每次创建用户时创建新列.

那么,你们会怎么做呢?而且,如果出于某种疯狂的原因,你碰巧同意我最初的想法,那么你能帮我弄清楚如何实际编写代码来实际做到这一点.

谢谢你的时间,祝你有个美好的一天.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值