gpt4 book ai didi

.net - 如何在数据库中存储数组?

转载 作者:行者123 更新时间:2023-12-01 07:16:34 25 4
gpt4 key购买 nike

我有一个简单的消息传递系统,到目前为止它使用基于文件的存储。由于系统的用户数量逐渐增加,我想切换到基于数据库的存储。
在代码中,消息服务器维护一个用户列表(及其凭据)和一个消息列表。消息对象的主要字段是发送者(用户类型)、接收者(用户 [] 类型)和内容(字符串类型)。
通常,用户会从服务器请求发送给他的消息,并接收其中 Recipients 字段包含他自己的用户名的所有消息。
因此,对于数据库,我设想了以下表格:
-A 用户表
-A 消息表
(- 每个用户的表,指定通过 MessageID 发送给他的消息)?

我遇到的问题是如何存储 Recipients 字段(其中包含一个数组),以便数据库查询可以搜索它以查找请求接收发送给他的消息的用户。我认为没有比为在系统上注册的每个新用户动态创建一个表更好的解决方案,该表保存对他被列为收件人的消息的引用。其他方法可能吗?

非常感谢!

最佳答案

I can see no better solution than to dynamically create a table for each new user...



您永远不应该从 relational-databases 看到“动态创建的表”观点看法。

一般来说,您的问题解决如下:
  • A users表(用户 ID,姓名,姓氏...)
  • A messages带有(message_id、time_stamp、subject、body、sent_by ...)的表
  • A messages_recipients表(message_id,recipient_id)

  • 两者 sent_by messages 中的字段表和 recipient_id messages_recipients 中的字段表应该是 foreign keysuser_id users 中的字段 table 。

    关于.net - 如何在数据库中存储数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2122949/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com