Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > Вопрос о репликации


Автор: XaverOz 18.10.2012, 08:10
Есть приложение которое работает с БД на MS SQL 2000. В БД у таблиц нет первичных ключей, внешних ключей, суррогатных ключей. Я хочу написать приложение используя Django, которое будет отображать данные из этой БД. Можно ли настроить репликацию (MS SQL 2000, PostgreSQL, MySQL, Firebird)  так что бы данные из таблиц: 
Код

+----------------------------------+
|Imia |Familia|CodOtdela           |
+----------------------------------+
|Вова |Иванов |1                   |
+----------------------------------+

переходили в:
Код

+----------------------------------------------------------+
| id                     |Name |Surname|idDepartment       |
+----------------------------------------------------------+
| 1                      |Вова |Иванов |1                  |
+----------------------------------------------------------+

Репликация нужна потому-что приложение работает и добавляет данные в БД исходников его нет.

Автор: Zloxa 18.10.2012, 08:58
если вы добавляете поле с суррогатным ключем, приложение ломается?

Добавлено через 44 секунды
если вы переименуете таблицы, а вместо исходных таблиц приложению выставите вьюхи, приложение сломается?

Автор: Akina 18.10.2012, 09:44
Я себе даже представить не могу, что может случиться, что поломаться, если в таблицу добавить автоинкрементное первично-ключевое поле, причём последним в структуре... даже идиотизм в виде обращения по номеру поля не поломается...

Автор: Zloxa 18.10.2012, 10:20
Цитата(Akina @  18.10.2012,  10:44 Найти цитируемый пост)
Я себе даже представить не могу

На вскидку приходит что может отвалиться

1
Код

insert into table values(val1,val2...,valN);

2
Код

insert into table select * from other_table;

3
natural join
4
фетчи в какие нибудь предопределенные структуры из select *


Много чего может отвалиться от добавления столбца в таблицу.  smile 

Автор: Akina 18.10.2012, 10:37
Ну то есть всё, что "грязно захардкодено"...


Автор: Zloxa 18.10.2012, 11:50
Полагаешь в субд спроектированной без ключей все чистенько? smile

Автор: Akina 18.10.2012, 12:06
Zloxa, так речь не о ключах... все твои примеры - это примеры того, что кодеры облегчают себе жизнь, полагаясь на что-то по умолчанию. А то, что некоторые умолчания имеют право меняться, забывают.
Не зря же говорят - обязательно определяйте и инициализируйте все переменные... и тут те же грабли.

Автор: Zloxa 18.10.2012, 12:19
Цитата(Akina @  18.10.2012,  13:06 Найти цитируемый пост)
А то, что некоторые умолчания имеют право меняться, забывают.

Причем - напрочь smile
Цитата(Akina @  18.10.2012,  10:44 Найти цитируемый пост)
Я себе даже представить не могу, 


Цитата(Akina @  18.10.2012,  13:06 Найти цитируемый пост)
так речь не о ключах...

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

Добавлено через 13 минут и 15 секунд
К тому же, я уже как то упоминал, что я временами намеренно пишу конструкции, которые будут ломаться при изменении схемы данных, в частности - при добавлении столбца в таблицу. Ибо пусть лучше стайтмент поломается, нежели данные потеряются.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)