mycnice
2015-01-02 08:20
采纳率: 50%
浏览 2.2k
已采纳

类似12306账号中的常用联系人这种不定长的数据是怎么存储的?数据库是如何建的?求指教

类似12306账号中的常用联系人、论坛回复 这种不定长的数据是怎么存储的

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • 發糞塗牆 2015-01-04 05:26
    已采纳

    就这个网站来说,应该很少存在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));
    
    已采纳该答案
    打赏 评论
  • believe9 2015-01-02 08:54

    直接把数据的类型指定为varchar2类型即可

    打赏 评论
  • oyljerry 2015-01-02 08:56

    varchar来存储字符串,适合不定长

    打赏 评论
  • 91program 2015-01-02 08:59

    联系人这种不定长的数据,一般也是有一个固定的长度限制的,不可能太长。所以,从数据存贮的角度,只需要分配足够长的存贮空间就可以满足要求。
    无论是数据库,还是编程,处理上基本是差不多的。

    打赏 评论
  • threenewbee 2015-01-02 11:05

    不定长的数据有两个办法处理。
    一个是估计一个最大长度,转化成定长来存储,优点是查询效率高,缺点是存储效率低。
    你看到论坛发帖,经常会说,不能超过10000个字。twitter发信息,不能超过140words,就是这个道理。

    另一个做法是使用变长数据类型,比如varchar或者nvarchar。这种方式的存储效率比较高,但是查询效率就比较低。

    打赏 评论
  • 吉普赛的歌 2015-01-02 13:35

    varchar 适合英文,
    nvarchar 适合中文
    这两种, 本来就为不定长数据准备的, 你还犹豫什么?

    不可能搞成 char 或者 nchar, 没有这种做法。

    打赏 评论
  • 黄景辉2015 2015-01-02 15:12

    在内存采用链表的形式来管理·!在数据库采用表级关系连接啊·

    打赏 评论

相关推荐 更多相似问题