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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
08.07.2008, 15:08:02
    #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
08.07.2008, 15:55:03
    #35418026
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что надо учесть при создании БД для её максимальной переносимости между разными СУБД?
Выбор средств лучше делать до начала разработки. Не надо упираться на универсальность. В случае использования PHP лучше смотреть в сторону MySQL т.к. большинство хостингов обычно их в паре предоставляют.

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

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

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


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