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

如何使用SQL创建空表?

  •  4
  • Christian  · 技术社区  · 14 年前

    完整的故事

    我正在写一个非常小的PHP框架。它不像现有的框架那样强迫你使用某种方法。它也不像CMS框架。相信我,我看过Zend框架,也广泛使用过Joomla和WordPress之类的CMSE, 他们没有一个能接近我所做的。

    介绍问题

    它的设计使得人们可以很容易地添加不同的数据库类并使用它们(例如mysql、mssql、oracle、flatfile…)。

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

    真正的问题

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

    我有几个建议的解决方案:

    • 对于每个新表,创建一个尽可能不占用任何空间的temp列(可能是一个布尔列?)
    • 以某种方式延迟表的创建,直到至少可以创建一列

    3 回复  |  直到 7 年前
        1
  •  3
  •   bramp Madhur Ahuja    14 年前

    我要么使用选项1),添加一个通用ID列(您可能会发现您无论如何都需要它),要么使用选项3)延迟表的创建。我假设在他们调用::table\u create()之后,他们将调用table\u add\u col(),等等。所以只要延迟创建,直到至少有一列,或者直到他们真正尝试第一次使用该表。

        2
  •  1
  •   2ndkauboy    14 年前

    你提议的修复看起来很好。但我会以不同的顺序推荐他们。如果你能延迟创作,这可能是最好的。我的第二个爱好是只有一个ID的表,尽管如果您只想创建一个只有两个外键的多对多关系表,您可能需要删除此列。

        3
  •  0
  •   The Surrican    14 年前

    最后一点。

    你在这儿干什么真奇怪。动态创建表?还是什么? http://couchdb.apache.org/ ! 您可以创建文档并动态添加所需的任何字段。这些是最接近你的“专栏”

    但你喜欢的话。。。 你的第一次尝试是丑陋的,因为它可能会导致冲突。 但它很好。。。我不知道该怎么说。

    他们的方法似乎是唯一有意义的!