sql server 一个字段内存储不确定个值

时间:2023-01-24 14:57:54
最近遇到一个问题,在存储某些信息时,发现一般的关系数据库似乎不太合适,目前的关系数据库,某个字段的值要么是有,要么是没有,但不能同时存在多个。
这样就很不方便。有没有一个什么办法,可以使一个字段的值可以变为不确定个。
比如“人”这个表。其身份证号码可以是主键,姓名、年龄等都可用普通的关系表存储,但这个人的绰号或者是曾经居住地,这些字段的值是否可以是不确定个,可能是一个,可能没有,也可能是多个。希望不是用一个字符串加分隔符的方式,因为这样的方式有很多不好的地方,比如查询的时候,问题就会复杂。而且数据的一致性也不好保证。
谁知道有什么好办法。

13 个解决方案

#1


用另一个表来存,

结构可以如下:
身份证号,存储类型,存储值


记录可以如下存:
AAAAA,绰号,和尚
AAAAA,曾经居住地,深圳
BBBBB,绰号,轻舞飞扬

#2


这种方法我知道,也存在很多问题的,你的存储类型,存储值都不能很好的保证数据的完整性,一般你都要定义成字符串,你这样的两张并列表,其实还是一张表,只是多张表,在有些地方精简了些。我的意思是现在有没有新的技术可以直接使得有些字段的存储上可以变得灵活点,不是以前那样要么是一个值,要么为空,而是可以是不确定个值。

#3


谁还知道啊?

#4


楼主是意思明白,不过不知道怎么解决。
我感觉还是把人的唯一信息 如 身份证号码、姓名、年龄等在一个表里面保存,每个人只有一行记录,把绰号等在另一个表保存,一个人有几个绰号就有几行记录,字段类型用nvarchar 好一点

#5


我知道怎么解决,也可以解决,但一直就觉得这样的方法开发逻辑上不清晰,现在好像有新技术,是面向对象的关系型数据库技术,不知道谁熟,一起研究一下。

#6


#7


字段名,字段内容

#8


不知道楼上说的是什么意思

#9


听数据库讲座时,记得老师讲关系数据库都开始面象对象发展,比如ORACLE

#10


是啊,说是这么说,但具体谁目前用过这样的数据库,做过实际开发。

#11


该回复被版主删除

#12


?

#13


怕是在sqlserver中不可能实现

#14


都快忘了这个问题了?今天看看依然没有好得办法

#1


用另一个表来存,

结构可以如下:
身份证号,存储类型,存储值


记录可以如下存:
AAAAA,绰号,和尚
AAAAA,曾经居住地,深圳
BBBBB,绰号,轻舞飞扬

#2


这种方法我知道,也存在很多问题的,你的存储类型,存储值都不能很好的保证数据的完整性,一般你都要定义成字符串,你这样的两张并列表,其实还是一张表,只是多张表,在有些地方精简了些。我的意思是现在有没有新的技术可以直接使得有些字段的存储上可以变得灵活点,不是以前那样要么是一个值,要么为空,而是可以是不确定个值。

#3


谁还知道啊?

#4


楼主是意思明白,不过不知道怎么解决。
我感觉还是把人的唯一信息 如 身份证号码、姓名、年龄等在一个表里面保存,每个人只有一行记录,把绰号等在另一个表保存,一个人有几个绰号就有几行记录,字段类型用nvarchar 好一点

#5


我知道怎么解决,也可以解决,但一直就觉得这样的方法开发逻辑上不清晰,现在好像有新技术,是面向对象的关系型数据库技术,不知道谁熟,一起研究一下。

#6


#7


字段名,字段内容

#8


不知道楼上说的是什么意思

#9


听数据库讲座时,记得老师讲关系数据库都开始面象对象发展,比如ORACLE

#10


是啊,说是这么说,但具体谁目前用过这样的数据库,做过实际开发。

#11


该回复被版主删除

#12


?

#13


怕是在sqlserver中不可能实现

#14


都快忘了这个问题了?今天看看依然没有好得办法