问题: 数据库问题, 比如说有一个记录
姓名 年龄 籍贯 爱好
当爱好有不确定数量时怎么弄?是建立足够多字段,比如 爱好1 爱好2 爱好3 爱好4
还是在爱好字段下将不同爱好用分割符号分开,程序中再处理,比如 唱歌,游泳,羽毛球
有别的好办法吗?
-----------------------------------------------------------------------
答案1:
第一爱好、第二爱好、第三爱好。。。可以设置多个爱好,第一爱好不为空就行
-----------------------------------------------------------------------
答案2:
建立足够多字段
***********
这个不可取
———————————————
分隔符
*******
可以考虑
———————————————
也可以另建表存放
姓名code 行号 爱好
n0001 001 唱歌
n0001 002 游泳
n0001 003 羽毛球
n0002 001 唱歌
n0002 002 游泳
-----------------------------------------------------------------------
答案3:
或者再表一个爱好表:
姓名 爱好
A A0
A A1
A A2
B A0
B A2
-----------------------------------------------------------------------
答案4:
用分割符号|来进行划分
-----------------------------------------------------------------------
答案5:
引用 4 楼 lxq19851204 的回复:
用分割符号|来进行划分
用逗号划分有什么缺点吗?
-----------------------------------------------------------------------
答案6:
引用 5 楼 rkdrc 的回复:
引用 4 楼 lxq19851204 的回复:
用分割符号|来进行划分
用逗号划分有什么缺点吗?
其实也没什么缺点,看个人喜好。
-----------------------------------------------------------------------
答案7:
那就用分割的办法,减少表的数量
-----------------------------------------------------------------------
答案8:
建表是最好的选择...
-----------------------------------------------------------------------
答案9:
另建个表,里面有各种各样的爱好字段一个........然后还有一个字段用于存储个人标识,不能用名字,因为名字可能会有同名.
这样的话就可以根据这个唯一个人标识,在这个表里查到他所拥有的爱好了....
-----------------------------------------------------------------------
答案10:
可以通过Recordset.Fields.count来查询字段的具体数量.
-----------------------------------------------------------------------
答案11:
但是观楼主的题意,其实楼主犯了一个错误,
应该把爱好什么的建成一个字表,通过用户名什么的和主表关联,建议去看看数据库范式,
对数据库的建立会有很大的好处.
-----------------------------------------------------------------------
答案12:
建议楼主将爱好细化成表
这样条理清晰
处理起来也方便
-----------------------------------------------------------------------
答案13[推荐答案]:
实际上,如何建表是由数据需要如何处理决定的。而且,作为关系型数据库,不建议在一条记录中搞许多冗余字段,只建一个爱好字段。
如果仅仅由于显示,在同一条记录中的该字段写入所有爱好即可。
如果要利用爱好分类查询,则有多项爱好的人需要多条记录。每一条记录写入一项爱好。如:
张三 20 北京 唱歌
张三 20 北京 游泳
张三 20 北京 羽毛球
当然,也可以将爱好另外建表:
表1:
ID 姓名 年龄 籍贯
表2:
ID 爱好
这样,一个人在表1 中占用一条记录。如果有多项爱好,则在表2 中占用多条记录:
表1中:
00001 张三 20 北京
表2中
00001 唱歌
00001 游泳
00001 羽毛球
分表还是合表,各有利弊,要根据应用的实际情况抉择。
爱好1 爱好2 爱好3 爱好4 这种方式是最差的。例如你要筛选出唱歌,则需要:
姓名 年龄 籍贯 爱好
当爱好有不确定数量时怎么弄?是建立足够多字段,比如 爱好1 爱好2 爱好3 爱好4
还是在爱好字段下将不同爱好用分割符号分开,程序中再处理,比如 唱歌,游泳,羽毛球
有别的好办法吗?
-----------------------------------------------------------------------
答案1:
第一爱好、第二爱好、第三爱好。。。可以设置多个爱好,第一爱好不为空就行
-----------------------------------------------------------------------
答案2:
建立足够多字段
***********
这个不可取
———————————————
分隔符
*******
可以考虑
———————————————
也可以另建表存放
姓名code 行号 爱好
n0001 001 唱歌
n0001 002 游泳
n0001 003 羽毛球
n0002 001 唱歌
n0002 002 游泳
-----------------------------------------------------------------------
答案3:
或者再表一个爱好表:
姓名 爱好
A A0
A A1
A A2
B A0
B A2
-----------------------------------------------------------------------
答案4:
用分割符号|来进行划分
-----------------------------------------------------------------------
答案5:
引用 4 楼 lxq19851204 的回复:
用分割符号|来进行划分
用逗号划分有什么缺点吗?
-----------------------------------------------------------------------
答案6:
引用 5 楼 rkdrc 的回复:
引用 4 楼 lxq19851204 的回复:
用分割符号|来进行划分
用逗号划分有什么缺点吗?
其实也没什么缺点,看个人喜好。
-----------------------------------------------------------------------
答案7:
那就用分割的办法,减少表的数量
-----------------------------------------------------------------------
答案8:
建表是最好的选择...
-----------------------------------------------------------------------
答案9:
另建个表,里面有各种各样的爱好字段一个........然后还有一个字段用于存储个人标识,不能用名字,因为名字可能会有同名.
这样的话就可以根据这个唯一个人标识,在这个表里查到他所拥有的爱好了....
-----------------------------------------------------------------------
答案10:
可以通过Recordset.Fields.count来查询字段的具体数量.
-----------------------------------------------------------------------
答案11:
但是观楼主的题意,其实楼主犯了一个错误,
应该把爱好什么的建成一个字表,通过用户名什么的和主表关联,建议去看看数据库范式,
对数据库的建立会有很大的好处.
-----------------------------------------------------------------------
答案12:
建议楼主将爱好细化成表
这样条理清晰
处理起来也方便
-----------------------------------------------------------------------
答案13[推荐答案]:
实际上,如何建表是由数据需要如何处理决定的。而且,作为关系型数据库,不建议在一条记录中搞许多冗余字段,只建一个爱好字段。
如果仅仅由于显示,在同一条记录中的该字段写入所有爱好即可。
如果要利用爱好分类查询,则有多项爱好的人需要多条记录。每一条记录写入一项爱好。如:
张三 20 北京 唱歌
张三 20 北京 游泳
张三 20 北京 羽毛球
当然,也可以将爱好另外建表:
表1:
ID 姓名 年龄 籍贯
表2:
ID 爱好
这样,一个人在表1 中占用一条记录。如果有多项爱好,则在表2 中占用多条记录:
表1中:
00001 张三 20 北京
表2中
00001 唱歌
00001 游泳
00001 羽毛球
分表还是合表,各有利弊,要根据应用的实际情况抉择。
爱好1 爱好2 爱好3 爱好4 这种方式是最差的。例如你要筛选出唱歌,则需要:
select * from yourtable where 爱好1='唱歌' or 爱好2='唱歌' or 爱好3='唱歌' or 爱好4='唱歌'
topic.csdn.net/u/.../0005aa24-d229-4866-abd0-91e2656c6222.html