Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/session/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database design CodeIgniter表_Database Design_Session_Codeigniter_Database Schema - Fatal编程技术网

Database design CodeIgniter表

Database design CodeIgniter表,database-design,session,codeigniter,database-schema,Database Design,Session,Codeigniter,Database Schema,现在,我有几个问题: 每个会话id的长度为32个字符,但表中有varchar(40)。为什么是varchar(40)而不是char(32) 像182.111.112.113这样的ip_地址的长度为15个字符,但在表中我们有varchar(16)。为什么是varchar(16)而不是varchar(15) 每个user_代理的长度为50个字符,但表中有varchar(50)。为什么是varchar(50)而不是char(50) 有人能回答我这个问题吗?求你了 注意:我的默认存储引擎是InnoDB

现在,我有几个问题:

  • 每个会话id的长度为32个字符,但表中有varchar(40)。为什么是varchar(40)而不是char(32)

  • 像182.111.112.113这样的ip_地址的长度为15个字符,但在表中我们有varchar(16)。为什么是varchar(16)而不是varchar(15)

  • 每个user_代理的长度为50个字符,但表中有varchar(50)。为什么是varchar(50)而不是char(50)

  • 有人能回答我这个问题吗?求你了

    注意:我的默认存储引擎是InnoDB

  • 他们可能选择使用40个字符而不是32个字符,只是为了在将来某些标准发生变化或修改id_会话的编码方式时保护自己的背部。Varchar而不是char。。。好的,char在末尾添加了空格(这是一种固定长度的类型),正好可以容纳40个字节。当您检索它时,它返回到32字节,但我想它们使用Varchar来节省存储空间

  • 我不知道。对不起

  • 也许用varchar作为标准?我不知道,但就我而言,我倾向于有条理地使用varchar而不是char

  • 请记住,我所有的答案都只是假设,我对其中任何一个都不清楚(尤其是第二个xD)


    致以最诚挚的问候

    你根本不必为此担心。查看MySQL文档中的数据类型:

    总之,varchar扩展到所需的范围,直到达到指定的限制。因此,如果只使用50个字符,那么数据库中只需要50个字符,而不是60个字符。因此,可能只是开发人员希望得到相当的偶数

  • 您可以将其更改为varchar(32)

  • 用于IPV6

  • 用户_代理是一个变量,因此将其更改为varchar(255)


  • 你不应该选择正确的答案吗?我知道要求将答案标记为正确是不礼貌的,但我认为如果你觉得你的答案被问到了,你应该选择我们的答案之一。与其将标题改为标记为[已解决],不如点击左边的勾号,接受下面的答案之一。
    CREATE TABLE IF NOT EXISTS  `ci_sessions` (
    session_id varchar(40) DEFAULT '0' NOT NULL,
    ip_address varchar(16) DEFAULT '0' NOT NULL,
    user_agent varchar(50) NOT NULL,
    last_activity int(10) unsigned DEFAULT 0 NOT NULL,
    user_data text DEFAULT '' NOT NULL,
    PRIMARY KEY (session_id)
    );