【问题标题】:What is the best alternative for a list of integers in SQL Server?SQL Server 中整数列表的最佳替代方案是什么?
【发布时间】:2019-07-08 19:04:32
【问题描述】:

有时我需要一个引用整数列表的行。

在某些情况下,添加整个表格感觉有点过头了。我永远不需要在行的上下文之外解决这些ints

当我不需要担心下面的多个表时,我的 C# 代码会变得更简单。

一个简单的例子是:仅存在于 C# 端的枚举列表。

理论上,我正在寻找“整数列表”字段类型。有什么吗?

User
- Id                 int
- Property1          int
- Property2          int
- ListOfEnumValues   list(int) -- or something

目前我回退到添加逗号分隔的字符串,但这需要更多的字节,而不是我想要的,并且感觉更“脏”。

我现在如何做的一个例子:

public IEnumerable<int> Numbers
{
    get { return _NumbersDb.Split(','); }
    set { _NumbersDb = string.Join(',', value); }
}

我正在考虑编写某种 C# 辅助方法并使用 varbinary

还有其他建议吗?

【问题讨论】:

  • 称为联结/关联表。
  • 嗨@GordonLinoff,我想省略的实际上是联结表——它给一些小情况带来了太多的开销(比如参考只存在于C#中的枚举列表)。当然,对于所有重要的“英雄”表,我都会以正确的方式进行操作。
  • 你是问SQL中有没有集合类型?如果是这样,我不相信有。
  • 不是 100% 确定你在问什么。您只是在寻找一个整数表吗?
  • 如果您只需要一个仅在 C# 端用作列表的整数列表,那么只需将此列设为 varchar(somethingbigenough) 并使用逗号分隔列表。那是HUGE RDBMS antipattern,下一个开发人员可能会活剥你的皮,但听起来它很适合这里的账单。如果你走这条路,它只会是 'dirty' 因为它是。联结表将是更具可扩展性的解决方案,并且不会受到反模式问题的影响。

标签: c# sql sql-server list


【解决方案1】:

MS SQL Server 中没有集合。因此,一个可能的解决方案将存储在 NoSQL 中。例如,在 XML 或 JSON 中

【讨论】:

    猜你喜欢
    • 2017-06-11
    • 1970-01-01
    • 2021-01-17
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-25
    • 1970-01-01
    相关资源
    最近更新 更多