在我的网站上,我已经建立了一个聊天室,支持多个房间。当用户加入这个房间时,一个会话会被放置到数据库中,这样如果他们试图再次在另一个浏览器窗口中加入这个房间,他们就会被锁在外面。
它是这样工作的
1. Join the chatroom page
2. Connect to chatroom #main
If the user has a session in the database for #main
--- Block user from joining
else
--- Load chatroom
当聊天室关闭客户端或用户使用/quit命令终止那里的连接时,他们的所有会话都会被删除,这很
表如下所示,其中chatroom name是全文索引。
Chatroom name | number of users
---------------------------------
usa | 22
india | 33
所以基本上我的操作就像.如果chatroom name不存在的话,我会尝试插入它,如果聊天室已经存在,只需更新number of users。怎么做?我发现我们可以使用一些散列方法,您可以创建另一个唯一的列,其中包含聊天室name..But的散列,我听说会有可能在crc32..Is中复制,有什么替代的方法吗?谢谢
$myU
当您拥有基于来自另一个Azure SQL数据库的不存在表的外部表时。
SELECT *
FROM invalid_external_table
引发下列错误消息:
Msg 46823,16级,状态1,程序
从{azure数据库}检索数据时出错。接收到的基本错误消息是:“无效对象名‘dbo.false_table’。”
我正在处理的问题是,您似乎无法捕捉到此错误。
以下代码将导致相同的错误:
BEGIN TRY
SELECT *
FROM invalid_external_table
END TRY
BEGIN CATCH
PRINT 'caught
我使用nodejs作为我的应用程序的后端。在我的应用程序中,我需要显示对数据库中某些表的实时更改。现在,用户对后端(NodeJS)进行适当的API调用,而后端又进行数据库调用(MySQL)以获取表的当前状态(SELECT* FROM table),每隔2秒($interval)。在我的例子中,API调用是一种高级资源。有没有更好的方法来实现它,从而最小化API调用的数量(只在表或数据库发生更改时才进行调用)?
应用程序内部的构造非常类似于聊天室,但并不完全相同。在这里,人们查看可用的房间(由用户创建),然后加入这些房间中的一个/多个,以更改“与此房间关联的表”(在创建此房间时由其所有者创建)
我面临一些挑战,为映射用户和他们的聊天室建模一个表。我找到了两种方法来避开我所面临的具体挑战,但我担心的是性能问题。我在下面加入了一个简化的实际情况-
表:成员
列
user_id int
user_name varchar
user_role int
chatroom_id int
chatroom_name varchar
约束
user_id unique: an user can only be in one chatroom
user_name+chatroom_id compos