powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Что надо учесть при создании БД для её максимальной переносимости между разными СУБД?
15 сообщений из 15, страница 1 из 1
Что надо учесть при создании БД для её максимальной переносимости между разными СУБД?
    #35412786
psoL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Пишу программу (на PHP) и сейчас, для продолжения, надо начать использовать базу данных. Я уже спланировал ее структуру (БД несложная) и установил MySQL, потому что однажды с ней уже разбирался. Но какая СУБД будет использоваться в итоге не известно (вероятнее всего это либо MySQL, либо PostgreSQL). Выбор не сделан, потому что я вообще плохо знаком со всем, что связано с базами данных, а с другой стороны это не основная часть "проекта", а только инструмент.
Но данные, которыми база заполнится в процессе разработки важны, и поэтому, если в будущем будет переход на другую СУБД, хочется чтобы он был как можно более безболезненным. И в первую очередь для самих данных.

Вопрос такой: что мне надо учесть для максимальной переносимости и безболезненного перехода? Например, в MySQL есть тип ENUM, который специфичен для нее - значит, лучше не использовать.
В общем, цель - максимальная независимость от используемой СУБД.
...
Рейтинг: 0 / 0
Что надо учесть при создании БД для её максимальной переносимости между разными СУБД?
    #35412922
edges7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использование стандартного SQL ( только само ядро языка, а не его диалекты, специфичные для различных СУБД ).
Отсутствие хранимых процедур, представлений и т.п.
...
Рейтинг: 0 / 0
Что надо учесть при создании БД для её максимальной переносимости между разными СУБД?
    #35413204
psoL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задал вопрос как-то не подумавши :-)
Ведь при смене СУБД, наверное, придется выгружать данные из базы в файл (собственного формата), а потом из файла заполнять БД на другой СУБД?
И в таком случае, наверное, вообще не важно что и как я буду использовать?
...
Рейтинг: 0 / 0
Что надо учесть при создании БД для её максимальной переносимости между разными СУБД?
    #35413980
Goffman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самое обидное будет, если перехода на другую СУБД так и не случиться (что наиболее вероятно) а вы при разработке не воспользуетсь всеми возможностями СУБД.
...
Рейтинг: 0 / 0
Что надо учесть при создании БД для её максимальной переносимости между разными СУБД?
    #35414203
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GoffmanСамое обидное будет, если перехода на другую СУБД так и не случиться (что наиболее вероятно) а вы при разработке не воспользуетсь всеми возможностями СУБД.Я бы сказал, почти никакими не воспользуетесь.
...
Рейтинг: 0 / 0
Что надо учесть при создании БД для её максимальной переносимости между разными СУБД?
    #35414700
edges7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft GoffmanСамое обидное будет, если перехода на другую СУБД так и не случиться (что наиболее вероятно) а вы при разработке не воспользуетсь всеми возможностями СУБД.Я бы сказал, почти никакими не воспользуетесь.

Это расплата ( я бы даже сказал - кара ) за независимость от той или иной СУБД
...
Рейтинг: 0 / 0
Что надо учесть при создании БД для её максимальной переносимости между разными СУБД?
    #35415432
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
psoLЗдравствуйте.

Пишу программу (на PHP) и сейчас, для продолжения, надо начать использовать базу данных. Я уже спланировал ее структуру (БД несложная) и установил MySQL, потому что однажды с ней уже разбирался. Но какая СУБД будет использоваться в итоге не известно (вероятнее всего это либо MySQL, либо PostgreSQL). Выбор не сделан, потому что я вообще плохо знаком со всем, что связано с базами данных, а с другой стороны это не основная часть "проекта", а только инструмент.
Но данные, которыми база заполнится в процессе разработки важны, и поэтому, если в будущем будет переход на другую СУБД, хочется чтобы он был как можно более безболезненным. И в первую очередь для самих данных.

Вопрос такой: что мне надо учесть для максимальной переносимости и безболезненного перехода? Например, в MySQL есть тип ENUM, который специфичен для нее - значит, лучше не использовать.
В общем, цель - максимальная независимость от используемой СУБД.

Данные перенести не проблема. Ну напишете конвертер в крайнем случае.

Вот вещей типа LIMIT 1,50 (при работе с MySQL часто есть большой соблазн такое заюзать) придется избегать.

Всеобщей трепетной любви к хранимым процедурам не понимаю. По большому счету, разрабатывается спрашивающими обычно какая-нибудь такая хрень, в которой без и них жить можно.

А почему на PHP? Это ж скучно ;)
...
Рейтинг: 0 / 0
Что надо учесть при создании БД для её максимальной переносимости между разными СУБД?
    #35415539
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DogenДанные перенести не проблема.Не проблема, если не использовать СУБД-специфичные тип данных.
И если не использовать СУБД-специфичную логику работы с этими данными в запросах и в клиентском приложении.
Например, в некоторых СУБД пустая строка и NULL - это одно и то же, а в некоторых - это разные вещи.
...
Рейтинг: 0 / 0
Что надо учесть при создании БД для её максимальной переносимости между разными СУБД?
    #35415610
psoL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dogen
Данные перенести не проблема. Ну напишете конвертер в крайнем случае.

Вот вещей типа LIMIT 1,50 (при работе с MySQL часто есть большой соблазн такое заюзать) придется избегать.

Всеобщей трепетной любви к хранимым процедурам не понимаю. По большому счету, разрабатывается спрашивающими обычно какая-нибудь такая хрень, в которой без и них жить можно.

А почему на PHP? Это ж скучно ;)
Да, я в последствии так и подумал, что беспокоится тут не о чем. База у меня действительно очень простая.

На PHP, потому что при моем объеме знаний это единственное на чем я могу писать эффективно :-) "Когда я буду большим и важным" я буду обязательно писать на сипипи.
...
Рейтинг: 0 / 0
Что надо учесть при создании БД для её максимальной переносимости между разными СУБД?
    #35415736
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftНапример, в некоторых СУБД пустая строка и NULL - это одно и то же, а в некоторых - это разные вещи.

Вы такие тонкости упоминаете :)

Но тем не менее, когда я говорю о том, что перенос не проблема, я имею в виду не "слил дамп - залил на другой сервер".

А NULL должен быть NULL... С другой стороны, пустая строка - вещь опасная.

ПМСМ, NULL имеет право появляться в результатах запросов с LEFT JOIN, например. Но никак не в таблицах. И тогда что там понимает СУБД под пустой строкой, неважно.
...
Рейтинг: 0 / 0
Что надо учесть при создании БД для её максимальной переносимости между разными СУБД?
    #35416028
VinKS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если хочется быть независимым от версии бд, то для связи лучше всего использовать абстрактную прослойку. Например http://adodb.sourceforge.net/ ту же проблему с Limit 0, 50 решит спокойно, либо завязываться на ORM, например http://www.phpdoctrine.org/
...
Рейтинг: 0 / 0
Что надо учесть при создании БД для её максимальной переносимости между разными СУБД?
    #35416152
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
psoL пишет:

0) Надо учесть, что переносимых программ, работающих с БД не
бывает. Если бывает - это N вариантов одной программы, а не одна.

1) из правила п.0 есть редкие исключения.

> был как можно более безболезненным. И в первую очередь для самих данных.

Данные тебе придется как-то переносить, это делается в основном руками.

> Вопрос такой: что мне надо учесть для максимальной переносимости и
> безболезненного перехода? Например, в MySQL есть тип ENUM, который
> специфичен для нее - значит, лучше не использовать.

ENUM-то как раз не страшен. Это число от 1-го до кол-ва констант в ENUM-е.
Физически хранится именно номер, MySQL для понту подставляет в результатах
символическое имя константы. В другой СУБД подставлять тебе придется руками,
и все.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Что надо учесть при создании БД для её максимальной переносимости между разными СУБД?
    #35417871
Вы возьмите, да и скачайте себе, например, phpBB (http://phpbb.com ).
Распакуйте архив, там в папке /includes/db, лежит ряд файлов:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
dbal.php
db_tools.php
firebird.php
mssql.php
mssql_odbc.php
mysql.php
mysqli.php
oracle.php
postgres.php
sqlite.php
Посмотрите, разберетесь, что и как сделано.

Точно так же, можно поискать более сложные приложения, которые могут работать с разными СУБД.
...
Рейтинг: 0 / 0
Что надо учесть при создании БД для её максимальной переносимости между разными СУБД?
    #35418026
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбор средств лучше делать до начала разработки. Не надо упираться на универсальность. В случае использования PHP лучше смотреть в сторону MySQL т.к. большинство хостингов обычно их в паре предоставляют.

Если база простая, то в случае острой необходимости ее хоть на оракл недолго переделать. Если сложная и большая, то отказ от специфики выбранного SQL-сервера может привести к неэффективному решению некоторых моментов, т.к. специфика добавлена для облегчения и для ускорения работы запросов.

Статью как-то читал про смену СУБД в готовых прогах - как правило простая смена синтаксиса ни к чему хорошему не приводила. Товарищ рассказывал - перевели базу с интербэйса на MSSQL2K, работает, но жутко тормозить стало из-за блокировок, а интербэйс из-за версионности данных таких проблем не имел.

Так что пиши на том на чем работать будет, а об остальном не задумывайся.
...
Рейтинг: 0 / 0
Что надо учесть при создании БД для её максимальной переносимости между разными СУБД?
    #35418985
psoL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за советы.
Решил продолжить работать с MySQL, а если что - как-ниубдь перенесу :-) Просто меня сначала сильно озадачила перспектива, но так как БД у меня простая, а интерфейс взаимодействия программы с БД меня не волнует (промежуточная программа), то я успокоился. Просто не работал раньше всерьез с БД и СУБД и плохо разбираюсь. Еще раз всем спасибо.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Что надо учесть при создании БД для её максимальной переносимости между разными СУБД?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]