这对 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/