问题描述
- 类似12306账号中的常用联系人这种不定长的数据是怎么存储的?数据库是如何建的?求指教
-
类似12306账号中的常用联系人、论坛回复 这种不定长的数据是怎么存储的
解决方案
就这个网站来说,应该很少存在Unicode类型的数据,如果你真担心会有多语言的数据,比如维语、繁体中文等,可以用nvarchar类型存储。一般如果仅展示,那么以逗号或者其他符号分割每个联系人,然后以一列的形式存储即可,如果还需要做互动操作,建议创建一个关系表,存放当前人员和联系人的关系,通常是两列,一列是当前人员的主键,一列是联系人的主键。如
create table uses
(id int primary key,
name nvarchar(64));
create table Users_Contacts
(userid int,ContactID int
);
create table Contacts
(ContactID int primary key,
ContactName nvarchar(64));
解决方案二:
直接把数据的类型指定为varchar2类型即可
解决方案三:
varchar来存储字符串,适合不定长
解决方案四:
联系人这种不定长的数据,一般也是有一个固定的长度限制的,不可能太长。所以,从数据存贮的角度,只需要分配足够长的存贮空间就可以满足要求。
无论是数据库,还是编程,处理上基本是差不多的。
解决方案五:
不定长的数据有两个办法处理。
一个是估计一个最大长度,转化成定长来存储,优点是查询效率高,缺点是存储效率低。
你看到论坛发帖,经常会说,不能超过10000个字。twitter发信息,不能超过140words,就是这个道理。
另一个做法是使用变长数据类型,比如varchar或者nvarchar。这种方式的存储效率比较高,但是查询效率就比较低。
解决方案六:
varchar 适合英文,
nvarchar 适合中文
这两种, 本来就为不定长数据准备的, 你还犹豫什么?
不可能搞成 char 或者 nchar, 没有这种做法。
解决方案七:
在内存采用链表的形式来管理·!在数据库采用表级关系连接啊·
时间: 2024-09-30 11:52:14