php - MySQL 数据类型?

标签 php mysql content-management-system types phpmyadmin

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

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

我乐于接受解释各种 MySQL 数据类型及其用途的答案。请使用常见的数据库字段作为示例。

下面是我想要的列表。缺少什么以及我需要使用什么数据类型?

Resources (For my files)

  • file_id
  • filename (Files are presorted and display names and paths are derived from here.)
  • file_type (PDF | AUDIO | VIDEO | PHOTO [Also used to generate file urls])
  • upload date (timestamp in PHP or MySQL)
  • uploaded_by (User ID from Users table)
  • event (event_id from Events table, optional)

Users (User accounts - for admin access and maybe a notification list)

  • user_id
  • first_name
  • last_name
  • email
  • password
  • phone_number (optional)
  • permissions_level (read only, upload)
  • creation_date

Events

  • event_id
  • event_name
  • event_location
  • event_date
  • event_description
  • entry_date

最佳答案

我会采取什么:

资源(对于我的文件)

  • file_id INT(或 SMALLINT,具体取决于预期条目的数量)
  • 文件名 VARCHAR(如果长度超过 255 个字符,则为文本)
  • file_type ENUM(如果只有您提到的那些,或者如果可以添加动态类型则为 VARCHAR)
  • 上传 DATE DATETIME(如果不需要时间,则上传 DATE)
  • uploaded_by INT(或 SMALLINT 但与用户表中的相同)
  • 事件 INT(或 SMALLINT 但与事件表中的相同)

用户(用户帐户 - 用于管理员访问和通知列表)

  • user_id INT(或 SMALLINT,具体取决于预期条目的数量)
  • 名字 VARCHAR
  • 姓氏 VARCHAR
  • 电子邮件 VARCHAR
  • 密码 CHAR(40)(用于 SHA1 哈希)
  • phone_number VARCHAR(因为它可能包含类似 -、/或 + 的内容)
  • permissions_level TINYINT(如果只有数字值且最多 127 个值)
  • creation_DATE DATETIME(如果您不需要时间,则为 DATE)

事件

  • event_id INT(或 SMALLINT,具体取决于预期条目的数量)
  • 事件名称 VARCHAR
  • event_location VARCHAR
  • event_DATE DATETIME(如果不需要时间,则为 DATE)
  • event_description TEXT(因为 VARCHAR 的 255 可能太短)
  • entry_DATE DATETIME(如果不需要时间,则为 DATE)

当您设置了数据库并输入了一些虚拟数据后,您可以通过 phpmyadmin 运行一个简单的语句,它会告诉您 MySQL 将采用哪些确切的虚拟数据:

SELECT * FROM events PROCEDURE ANALYSE()

Optimal_fieldtype 列中,您将找到 MySQL 告诉您采用的内容。但是你不应该采用那个确切的字段类型。它会经常告诉您采用 ENUM,但大多数时候您会添加随机数据,因此在这种情况下您必须采用 VARCHAR 列 Max_length 会提示您它应该有多长.但是在所有 VARCHAR 字段上,您应该添加额外的空间,具体取决于您期望值的长度。考虑到即使是名称也可能超过 50 个字符。

关于php - MySQL 数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3622319/

相关文章:

php - 如何使用 php 将 post 数据插入 mysql 数据库?

MYSQL本地数据infile语法错误

python - Pinax 如何添加新页面?

我自己的网站的Python CMS?

objective-c - 如何从网站动态获取数据并将其添加到 iPhone 应用程序?

php - 如何使用php和mysql根据用户角色ID访问特定数据库?

javascript - jQuery $.post 没有传递所有数据

php - 为什么 $handler 在回调中获得不同的值(value)?

MySQL 根据选择的结果更新表

php - MySQL覆盖或插入