Как мне создать пустую таблицу с SQL?

Это само по себе не проблема с MySQL.

Полная история

Я пишу очень маленький PHP-фреймворк. Это не похоже на существующие фреймворки, где они заставляют вас использовать определенную методологию. Это не похоже на структуру CMS. Поверьте мне, я видел Zend Framework и широко использовал CMS, такие как Joomla и WordPress, ни один из них не приблизился к тому, что я делаю.

Представляем проблемы

Я пишу абстракцию базы данных. Вы получаете методы класса, такие как :: table_exists () и т. Д. Он разработан таким образом, чтобы люди могли легко добавлять разные классы базы данных и использовать их вместо этого (например, mysql, mssql, oracle, flatfile ...).

Им просто нужно написать класс, который удовлетворяет базовым абстрактным классам '.

Настоящая проблема

Я пишу функциональность для :: table_create (), но у меня есть одна главная проблема: MySQL не любит пустые таблицы (то есть без столбца).

У меня есть несколько предложенных исправлений:

  • Для каждой новой таблицы создайте часто используемый столбец, например, 'id' (type = INT)
  • Для каждой новой таблицы создайте временный столбец, который не использует столько места, сколько возможно (возможно, логический столбец?)
  • Как-то отложить создание таблицы до тех пор, пока не будет создан хотя бы один столбец

Этот подход, безусловно, является новым, и я хотел бы высказать несколько непредвзятых комментариев о нем (что-либо в строках «но никто так не делает» не подойдет).

4 голоса | спросил Christian 29 PM00000060000005731 2010, 18:03:57

1 ответ


0

последний из ваших очков.

действительно очень странно, что ты здесь делаешь. создавать таблицы на лету? динамически что ли? ну ... все, что вы пытаетесь достичь. Вы должны взглянуть на документ /объектно-ориентированные базы данных, такие как couchdb http://couchdb.apache.org/ ! Вы можете создать документ и динамически добавлять любые поля, которые вы хотите. это самая близкая вещь к вашим "колонкам"

а как тебе нравится ... Ваша первая попытка уродлива, потому что это может привести к конфликтам. вторая попытка неуклюжа. но если вы сделаете это, создайте col с помощью uniqueprefix_random, чтобы потом его можно было удалить. но это хорошо ... я не знаю, что сказать об этом.

их подход кажется единственным разумным!

ответил The Surrican 29 PM00000060000003731 2010, 18:10:37

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132