代码之家  ›  专栏  ›  技术社区  ›  Moshe

MySQL数据类型?

  •  1
  • Moshe  · 技术社区  · 14 年前

    我正在用MySQL和PHP为一个基本的CMS设计一个数据库。CMS将有一个允许排序和搜索的前端。后端将允许授权用户上传文件。

    我正在使用PHPMyAdmin,我想帮助设置我的数据库。

    下面是我想要的清单。缺少什么?我需要使用什么数据类型?

    (我的文件)

    • 文件\u id
    • 文件名(对文件进行预排序,并导出显示名称和路径) 从这里开始。)
    • URL])
    • 上载者(用户表中的用户ID)
    • 事件(事件表中的事件标识,可选)

    用户

    • 用户id
    • 电子邮件
    • 电话号码(可选)
    • 权限级别(只读、上载)
    • 创建日期

    事件

    • 事件id
    • 事件名称
    • 活动地点
    • 事件描述
    • 入职日期
    3 回复  |  直到 14 年前
        1
  •  2
  •   2ndkauboy    14 年前

    我要的是:

    资源(我的文件)

    • 文件id INT(或SMALLINT,取决于预期的条目数)
    • 文件名VARCHAR(如果长度超过255个字符,则为文本)
    • 上载日期日期时间(如果不需要时间,则上载日期)
    • 事件INT(或SMALLINT,但与事件表中的相同)

    用户(用户帐户-用于管理员访问,可能还有通知列表)

    • 用户id INT(或SMALLINT,取决于预期的条目数)
    • 姓VARCHAR
    • 电子邮件VARCHAR
    • 权限级别TINYINT(如果只有数字值,最多127个值)
    • 创建日期时间(如果不需要时间,也可以是日期)

    事件

    • 事件位置VARCHAR
    • 事件\日期日期时间(如果您不需要时间,请选择日期)
    • 事件描述文本(VARCHAR的255可能太短)
    • 输入日期日期时间(如果不需要时间,则输入日期)

    当您设置了数据库并输入了一些伪数据后,您可以通过phpmyadmin运行一个简单的语句,它将告诉您MySQL将如何处理这些伪数据:

    SELECT * FROM events PROCEDURE ANALYSE()
    

    在列中 Optimal_fieldtype Max_length

        2
  •  1
  •   GrandmasterB    14 年前

    您的用户表没有密码哈希的列。不知道你是否打算让它有这样的。我不知道如何回答应该使用哪些数据类型,因为这完全取决于您计划如何使用列。对于日期,我更喜欢datetimes而不是timestamps,但这只是我个人的偏好,因为我喜欢在查询中手动插入日期。

        3
  •  0
  •   Jim    14 年前

    缺少什么,好吧,那是你自己决定/需要什么。你应该仔细阅读设计数据库的知识。

    至于你所拥有的数据类型

    • id字段应为 INT ,或 BIGINT PRIMARY KEY .

    • varchar 你需要多长时间取决于你的要求。大多数第一个/列表名称通常最多25-30个字符。根据您的要求,事件名称最多可达250个字符。

    • VARCHAR 大约50-150,取决于你的要求。

    • 日期应该是 DATETIME 现场。

    • 描述应该是 VARCHAR(250) TEXT 现场。

    • 国际的 或者

    • 电话号码可能是 (如果您想去除所有非数字字符并按自己的方式格式化)或 VARCHAR(15)

    • 电子邮件应该是 .

    希望这能有所帮助,这也取决于 应用程序的需求和您所设想的。但是初始类型总是可以随着需求的变化而改变的。

    如果您想了解有关不同MySQL数据类型的完整信息,请阅读手册: http://dev.mysql.com/doc/refman/5.0/en/data-types.html