php - 如何使用 SQL 创建一个空表?

标签 php mysql database

这对 MySQL 本身来说不是什么大问题。

全文

我正在编写一个非常小的 PHP 框架。它不像现有框架那样强制您使用某种方法。它既不像 CMS 框架。相信我,我见过 Zend 框架,并且广泛使用过 Joomla 和 WordPress 等 CMS,它们都无法与我所做的相提并论。

介绍问题

我正在编写数据库抽象部分。你得到像::table_exists() 等类方法。 它的设计方式使人们可以轻松添加不同的数据库类并改用它们(例如;mysql、mssql、oracle、flatfile...)。

他们只需要编写一个满足基本抽象类的类。

真正的问题

我正在为::table_create() 编写功能,但有一个主要问题:MySQL 不喜欢空表(即没有列)。

我有几个建议的修复:

  • 为每个新表创建一个常用列,例如'id' (type=INT)
  • 为每个新表创建一个尽可能不使用任何空间的临时列(也许是 bool 列?)
  • 以某种方式延迟表的创建,直到至少可以创建一列

这种方法肯定是新的,我想在这里对此发表一些公正的评论(任何类似“但没有人那样做”的评论都不行)。

最佳答案

好吧,我会选择选项 1),添加一个通用 ID 列,无论如何您可能会发现它需要,或者选择选项 3) 延迟表创建。我假设在他们调用::table_create() 之后,他们将调用 table_add_col() 等。因此,只需延迟创建直到至少有一个列,或者直到他们第一次真正尝试使用该表。

关于php - 如何使用 SQL 创建一个空表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3595039/

相关文章:

php - 编程逻辑最佳实践——冗余检查

sql - 创建或替换 v/s 删除一个函数并重新创建它

sql - 如何在具有简单 4 列(sno、name、job、dept)的表上的 oracle 中创建死锁情况?

node.js - mongoose中的位置,mongoDB

PHP无限滚动拉随机结果?

javascript - Node.js 导出问题

php - MySQL 表 value1 小于表 value2

php - 将整数字符串转换为货币格式

php - 但我真的需要文本区域上的 htmlentities 吗?

mysql - SQL:添加唯一索引和添加唯一索引之间的区别?