none
sql server存储二维数组类型到数据库的数据表中,有哪些较好的思路或方式? RRS feed

  • 问题

  • sql server存储字符串类型的二维数组类型到数据库的数据表中,其实就是存储表类似excel的表格中的数据,包括行字段和列字段,以及每个行字段和列字段对应的内容,

    举一个例子说明吧,密保卡,有些网站采用的修改密码的方式有密保卡形式,密保卡是一个表格,有行字段,例如a,b,c,d,e,以及列字段1,2,3,4,5,以及每行每列对应的数字,用户通过解答几个行列的数字来进行下一步的密码修改。但我的主要疑问是,这些网站是怎么保存密保卡这种 “表格类型”数据的?

    当然我不是要存密保卡,因为密保卡的行数和列数是固定,都是同一个表格,除了每个行列对应的数字不同。

    而我想存的数据就是"表格类型"的数据(不是数据库的数据表),而且每个表格的风格可能还不一样,这些数据看起来像一个表格,而且这些"表格类型"的数据的每个表的行字段和列字段可能还不一样,因此表格内容也不一样。因某些需求而制作的表格,我要把这些表格信息存进数据库里的某个数据表里。

    例如,一张表的信息是:

             姓名, 年龄,活动地点 ( 行字段)

    星期一 

    星期二

    星期三

    星期四

    (列字段)

    第二张表的信息

             A,B,C,D

    1

    2

    3

    现在要把这两个表的信息,包括行字段和列字段,以及每行每列对应的内容,都存进数据库的一个数据表中。

    我想到的思路

    1,是把这两个表的数据转成有两个规律的字符串如json字符串之类,然后存进数据库或

    2.把这两个表格输出到两个excel表中,然后通过两个路径字符串指向这两个excel文件,然后把这两个路径字符串存进数据表中。

    这是我想到的两个思路。除了这个以外,还有更好的思路吗

    简而言之,我想存进数据表的数据,是表格,而且每个表格的行字段或列字段,以及内容可能还不一样。






    2018年1月19日 4:38

答案

  • 如果只是存储,考虑 json 或 xml

    如果还要考虑在数据库中做关系查询,那么要考虑把需要关系查询的部分弄成标准的表格

    2018年1月19日 9:18
  • 我明白你的意思了,简单的来说就是存一个矩阵在数据库里,那还是推荐xml或者json,不建议用excel,excel文件调用需要特定的驱动,非常不方便,还是xml和json的兼容性更好。

    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年1月19日 9:36
    版主

全部回复

  • Hi 便携式家园,

    能不能具体解释一下这句话“其实就是存储表类似excel的表格中的数据,包括行字段和列字段,以及每个行字段和列字段对应的内容”是什么意思?我的理解是,一个表格里存储了“{姓名,性别,年龄,ID},{11,11,11,11},{22,33,44,55}”。还有你所遇到的具体情况是什么?是必须要存成Excel文件吗,还是只是用于在SQL Server中进行处理?

    如果仅仅只看上面的问题,不建议使用Excel进行存储,建议使用json或者xml进行存储,我一般会使用xml,当然如果你所存储的数据具有一定的规律(指的是每个record中都是{姓名,性别,年龄,ID}),那么建议单独创建一张表来存储你的数组。

    Best Regards,

    Teige


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年1月19日 6:37
    版主
  • Hi 便携式家园,

    能不能具体解释一下这句话“其实就是存储表类似excel的表格中的数据,包括行字段和列字段,以及每个行字段和列字段对应的内容”是什么意思?我的理解是,一个表格里存储了“{姓名,性别,年龄,ID},{11,11,11,11},{22,33,44,55}”。还有你所遇到的具体情况是什么?是必须要存成Excel文件吗,还是只是用于在SQL Server中进行处理?

    如果仅仅只看上面的问题,不建议使用Excel进行存储,建议使用json或者xml进行存储,我一般会使用xml,当然如果你所存储的数据具有一定的规律(指的是每个record中都是{姓名,性别,年龄,ID}),那么建议单独创建一张表来存储你的数组。

    Best Regards,

    Teige


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    举一个例子说明吧,密保卡,有些网站采用的修改密码的方式有密保卡形式,密保卡是一个表格,有行字段,例如a,b,c,d,e,以及列字段1,2,3,4,5,以及每行每列对应的数字,用户通过解答几个行列的数字来进行下一步的密码修改。但我的主要疑问是,这些网站是怎么保存密保卡这种 “表格类型”数据的?

    当然我不是要存密保卡,因为密保卡的行数和列数是固定,都是同一个表格,除了每个行列对应的数字不同。

    而我想存的数据就是"表格类型"的数据(不是数据库的数据表),而且每个表格的风格可能还不一样,这些数据看起来像一个表格,而且这些"表格类型"的数据的每个表的行字段和列字段可能还不一样,因此表格内容也不一样。因某些需求而制作的表格,我要把这些表格信息存进数据库里的某个数据表里。

    例如,一张表的信息是:

             姓名, 年龄,活动地点 ( 行字段)

    星期一 

    星期二

    星期三

    星期四

    (列字段)

    第二张表的信息

             A,B,C,D

    1

    2

    3

    现在要把这两个表的信息,包括行字段和列字段,以及每行每列对应的内容,都存进数据库的一个数据表中。

    我想到的思路

    1,是把这两个表的数据转成有两个规律的字符串如json字符串之类,然后存进数据库或

    2.把这两个表格输出到两个excel表中,然后通过两个路径字符串指向这两个excel文件,然后把这两个路径字符串存进数据表中。

    这是我想到的两个思路。除了这个以外,还有更好的思路吗

    简而言之,我想存进数据表的数据,是表格,而且每个表格的行字段或列字段,以及内容可能还不一样。



    2018年1月19日 8:52
  • 行+列→数据

    这种关系的标准方法应该是行一列,列一列,数据一列吧……

    举个例子,原本的二维数组是这样:

    行/列 1 2 3
    1 a b c
    2 d e f
    3 g h i
    那么你存在数据库就应该是:
    数据
    1 1 a
    1 2 b
    1 3 c
    2 1 d
    2 2 e
    2 3 f
    3 1 g
    3 2 h
    3 3 i
    2018年1月19日 9:13
  • 如果只是存储,考虑 json 或 xml

    如果还要考虑在数据库中做关系查询,那么要考虑把需要关系查询的部分弄成标准的表格

    2018年1月19日 9:18
  • 我明白你的意思了,简单的来说就是存一个矩阵在数据库里,那还是推荐xml或者json,不建议用excel,excel文件调用需要特定的驱动,非常不方便,还是xml和json的兼容性更好。

    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年1月19日 9:36
    版主
  • 数组是程序语言设计的二维世界,表达一种对应关系。

    关系数据库也是为了描述对象之间关系而抽象出来的关系,比如一个公司有CEO,CTO,各个部门职员,我们在转化为关系数据库时,会设计一些映射表,来反映这种关系。

    我觉得数组可以映射到数据库中的映射表,两者不是直接转化,在理解逻辑的基础上,虽然实现方式不同,但达到的目的是一样的。

    数据库实现方式上,我认为首选是增加映射表,这样方便检索,修改。JSON/XML也不错,这样可以摆脱数据库的限制,直接用数据文件的方式存储,方便移植和部署。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2018年1月20日 1:33