Префиксы для таблиц

Я тут залез в базу и заметил, что все таблицы имеют префикс prefix_. Потом вспомнил, что это сделано для того, чтобы в одной базе могли находиться несколько Ливстритов.

Далее я рассуждал так: раз уж у меня Ливстрит только один, то значит и префикс мне не нужен вовсе. Поэтому я залез в config.table.php и исправил строку
define('DB_PREFIX_TABLE','prefix_');
на
define('DB_PREFIX_TABLE','');

Затем в sql.sql и patch.sql (у меня 0.2 + trunk 253) автозаменой все prefix_ исправил на пустую строку, чтоб удалить.

В итоге при импорте sql.sql выскакивает ошибка в этом фрагменте (приведена оригинальная версия):
ALTER TABLE `prefix_topic_comment`
  ADD CONSTRAINT `prefix_topic_comment_fk` FOREIGN KEY (`comment_pid`) REFERENCES `prefix_topic_comment` (`comment_id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `topic_comment_fk` FOREIGN KEY (`topic_id`) REFERENCES `prefix_topic` (`topic_id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `topic_comment_fk1` FOREIGN KEY (`user_id`) REFERENCES `prefix_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE;

Как видно, после автозамены конфликтуют вторая и третья строка, а именно из-за prefix_topic_comment_fktopic_comment_fk = topic_comment_fk.

Вот такие пироги. Без префикса никак, приходится довольствоваться t_. А так хотелось иметь в базе таблицы с простыми названиями blog, user, friend и так далее. :|

UPD: Насчет префиксов к таблицам я всё для себя понял. Негодую насчет наименований ключей. :)

12 комментариев

avatar
>А так хотелось иметь в базе таблицы с простыми названиями blog, user, friend и так далее. :|

Чем вызвано сие желание?
avatar
префикс, причем оригинальный префикс, а не стандартное значение, это лишняя защита от хакеров… без префикса они ничего не смогут утянуть у вас из базы если вдруг обнаружится дырка…
  • Vilz
  • +5
avatar
Префикс у таблиц, правило хорошего тона )
avatar
Согласен, но когда работаешь с базой один на один, и никто не видит твоего «дурного вкуза» именования таблиц, то на первый план выходит удобство.

И если мы заговорили о хорошем тоне, то префикс по идее вещь опциональная, и при его удалении не должно ничего сыпаться. Или наоборот, ставить его надо везде, чтобы не возникала ситуация, описанная в топике.
avatar
Прикол в том, что завтра тебе захочется поставить ещё какую-нить систему, в туже БД, и у тебя будет каша, так что префикс даже с точки зрения юзабельности, оправдан))
avatar
Плюс непонятен принцип именования ключей:
prefix_topic_comment_fk → comment_pid
topic_comment_fk → topic_id
topic_comment_fk1 → user_id

Ну ладно, всё, успокаиваюсь. )
avatar
Это да, хорошо бы исправить =)
avatar
OMG, человеку делать нечего :)
  • tau
  • +1
avatar
Ок. Я понял, что в пока не до этого, но в будушем, когда все разрастется, переименовать ключи понятнее будет сложнее.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.