gpt4 book ai didi

java - 将特定用户保存的多个 url 插入数据库的最佳方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 11:58:52 27 4
gpt4 key购买 nike

我正在制作一个书签网站,用户可以在其中保存他的网址。那么将用户的所有 url 插入数据库 (mysql) 的最佳方法是什么。

1) 为单个用户创建单独的表。在每个表中创建 1 列并每行(每个单元格)放置 1 个 url。

2) 创建 1 个表并根据用户的行将所有 url 插入到单个单元格中。

如果第二个选项是最好的那么谁能解释我该怎么做?我可以在一个单元格中插入一个 url,但如何将所有 url 插入一个单元格并再次检索它以正确的方式显示。感谢您抽出时间阅读我的问题。我自己努力尝试这样做但失败了。这就是为什么要在这里问。

最佳答案

创建一个 bookmark包含以下列的表:(id, fk_user_id, url) .每个条目都有自己的 ID,外键是用户的 ID。

您不想为每个用户创建一个单独的表。那不会缩放!假设您有 1000 个用户 - 那至少有 1000 个表!

第二种方法可能可行,但存在以下问题:

  • 要添加 URL,您必须读入现有值,附加新值,然后再将其写回。这是您正在执行的两个数据库操作,只是为了添加一个新值。如果您采用外键方法,您只需执行一次写入。
  • 虽然可能性不大,但您可能会遇到这样的情况:用户使用两个客户端,而您最终几乎同时收到来自他们两个的添加书签的请求。这可能会导致一致性问题。例如,假设您已经拥有 http://google.com在列中,客户 #1 想要添加 http://reddit.com客户 #2 想要添加 http://stackoverflow.com .如果客户端 #2 在客户端 #1 的数据被持久化之前读入值,您将以 http://google.com, http://reddit.com 结束。或 http://google.com, http://stackoverflow.com取决于谁最后写入表。如果您几乎同时收到来自同一客户的多个添加请求,甚至可能会发生这种情况。
  • 添加删除书签,您的一致性问题可能会变得更糟。删除也变得困难了很多,因为不是简单的通过书签id删除,现在必须拉入数据,拆分,然后对url进行字符串比较,找出需要删除的内容,然后写修改数据回来。如果您最终几乎同时收到多个删除请求怎么办?您遇到了与添加新 URL 的情况相同的问题。

关于java - 将特定用户保存的多个 url 插入数据库的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30581334/

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