gpt4 book ai didi

mysql:将未知类型(字符串/整数)参数存储到数据库的最有效方法

转载 作者:行者123 更新时间:2023-11-29 14:56:31 25 4
gpt4 key购买 nike

我有一个包含默认模板的消息传递系统。例如:

您赢得了 X 个硬币

friend X 想与您分享网址 Y

因此每种消息/模板类型的参数数量各不相同。

我想到了 4 种解决方案来解决这个问题:

  1. 创建参数表并将每个参数类型表示为字符串。这里的问题是 user_ids 将表示为字符串,因此连接可能会更慢。

  2. 创建一个参数表,其中每行包含以下一个 bool 值,用于说明参数是 int 还是字符串,以及其他 2 列,一列类型为文本,另一列类型为 INT。所以这里我们有点浪费空间,因为每当我们使用 int 参数时,该行都包含未使用的字符串单元格。

  3. 根本不创建参数表,每个通知都包含一个参数字符串,其中包含每个所需的参数以及分隔符;。这可能是最慢的解决方案。

  4. 为每个参数创建两个不同的表:notification_param_int和notification_param_string,以及一个包含通知中每个参数的表到相关表。这个解决方案可能比解决方案 2 慢,因为我需要检查首先从哪个表获取信息。

还有其他我没有想到的选择吗?如果我不关心空间,只关心速度,我应该采取哪种方法?

我不是MySQL专家,所以每种方法的结论可能是错误的。

任何信息将不胜感激。

谢谢你!

最佳答案

通常,当拥有您所描述的开放式属性表时,您会发现某些属性更为重要(要么它们需要始终存在,要么需要快速)。在这种情况下,将它们提升到主记录中的字段。

我可以想象 UID 就是这样。如果您需要一个 UID(好友)列表,稍后会出现问题,但您也可以将好友提升到自己的表中。

就您而言,我只会选择#1 或#2,并在需要时考虑推广重要的属性。

关于mysql:将未知类型(字符串/整数)参数存储到数据库的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4499593/

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