【问题标题】:Storing multiple profile types in an SQL Database在 SQL 数据库中存储多种配置文件类型
【发布时间】:2015-08-24 17:56:01
【问题描述】:

好的,所以这似乎是一个奇怪的问题。我正在使用 C# ASP.NET MVC 开发会员系统,并且我的会员信息与他们的所有详细信息一起存储,但我需要每个会员在数据库中存储一份工作资料。这包含不同种类的东西,如资格、认证等。显然,不同的工作类型需要存储不同的数据类型

我打算为每种工作类型创建十几个不同的配置文件,并在适当的表中为用户分配一条记录,但这似乎仍然相当笨拙,(尽管我想这可能是我唯一的选择) .

我想知道是否有人可以推荐或告诉我另一种方法,这可能不会用一百万个不同的表使数据库混乱?

【问题讨论】:

  • 我提供了一个可能的选项作为答案,但您确定您的不同工作类型会有不同的数据类型吗?显然我不知道你的要求,但所有的工作类型都会有 Title、Description、Pay Grade,类似的东西都是一样的。您的资格和认证列表将只是普通的关系一对多表。
  • 我认为 XML 可能是要走的路。你看,我需要为特定工作类型中的用户存储特定信息。例如,其中一个工作部门是“航空航天”,其中有 2 个工作类别,即工程师和飞行员。显然,工程师和飞行员有两种完全不同的技能组合,并且各自在该领域具有不同的资格水平。

标签: c# sql asp.net sql-server database


【解决方案1】:

一种选择是将工作资料元数据存储为 XML。 Sql-Server 可以很好地处理 XML 数据类型,或者您可以在 c# 中处理序列化。您还可以将数据存储为 JSON。

【讨论】:

    【解决方案2】:

    您可以使用XML 列将配置文件数据存储为 SqlServer 中的 xml 格式信息,但如果有可能更改,我建议您查看 NoSql DB 和文档样式 DB,如 Redis 或 MongoDB,您可以单独存储每个用户配置文件数据,并可以将数据加载到 Lucene 等全文搜索器中进行进一步搜索。

    【讨论】:

      【解决方案3】:

      以终为始。

      • 谁想查询哪些信息?
      • 获取该数据的最简单方法是什么?

      例如:我正在寻找所有可以做 X 或曾经做过 Y 等的成员...我希望如何组织数据以便我可以轻松地获得该问题的答案。

      即使您将所有数据元素放入文档类型容器(xml、json 等)中 - 您也应该在定义这些内部元素时考虑到搜索。

      【讨论】:

        猜你喜欢
        • 2018-07-03
        • 2012-03-02
        • 2017-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-08
        • 1970-01-01
        相关资源
        最近更新 更多