

Синхронизация данных
#1
Отправлено 29 Декабрь 2012 - 07:36
Хотелось бы реализовать следующее:
Например есть два фирма и у них отдельная программа КБ.
Создаю кнопку в доп. или представление.
Вожу дополнение в одной программе хотелось бы как нибудь сделать синхронизацию файлов.
Как бы при нажатии на кнопку все изменение копировались.
Подскажите это возможно, если да то что можете посоветовать?
Заранее спасибо
#2
Отправлено 29 Декабрь 2012 - 10:59
#3
Отправлено 29 Декабрь 2012 - 11:40
CbCoder (29 Декабрь 2012 - 10:59) писал:
Спасибо, а где хранятся все файлы изменение кроме данных. Чтоб мог копировать и вставить в соответствующее.
Сообщение отредактировал mahmud: 29 Декабрь 2012 - 12:46
#4
Отправлено 29 Декабрь 2012 - 12:51
#5
Отправлено 30 Январь 2013 - 09:07
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#6
Отправлено 30 Январь 2013 - 12:42
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#7 Гость_Roman_*
Отправлено 30 Январь 2013 - 14:32
#8
Отправлено 30 Январь 2013 - 15:55
Roman (30 Январь 2013 - 14:32) писал:
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#9 Гость_Roman_*
Отправлено 31 Январь 2013 - 09:21
$file_path = get_file_path(111, 222, 'test.txt'); // Получаем путь к файлу $new_path = get_file_path(333, 444, 'test.txt'); // Получаем новый путь к файлу create_data_file_dirs(333, 444, 'test.txt'); // Создаём структуру каталогов copy($file_path, $new_path); // Копируем файл drop_data_file(111, 222, 'test.txt'); // Удаляем исходный файл, если надоВариант второй (не подойдёт для больших файлов)
$file_path = get_file_path(111, 222, 'test.txt'); // Получаем путь к файлу $content = file_get_contents($file_path); // Получаем содержание файла save_data_file(333, 444, 'test.txt', $content); // Сохраняем новый файл, структура каталогов автоматически создастся drop_data_file(111, 222, 'test.txt'); // Удаляем исходный файл, если надо.
#10
Отправлено 31 Январь 2013 - 12:52
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#11
Отправлено 08 Февраль 2013 - 11:36
Есть в планах привязка таблицы в качестве подчиненной к нескольким главным?
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#12
Отправлено 08 Февраль 2013 - 11:52
andibrag (08 Февраль 2013 - 11:36) писал:
andibrag (08 Февраль 2013 - 11:36) писал:
#13
Отправлено 08 Февраль 2013 - 16:11
andibrag (08 Февраль 2013 - 11:36) писал:
С текстовыми полями проблем нет. В случае с файлами ситуация такая.
- Изменение поля типа файл не вызывает никакого события. Т.е. удаление или добавление проходит незамеченным, если только не явно вызвать событие, например, сохранение таблицы или изменение любого поля другого типа.
- Копирование полей файл из одной таблицы в другую смысла не имеет. Получаем "битые ссылки" и внутренний файл-менеджер опознает их как есть в базе, но нет на диске, т.е. как мусор. Создание поля, в которое будут методом вычислений вноситься ссылки о реальном расположении файлов, решает проблему частично. Исчезает функционал добавления и удаления файлов в подчиненной таблице. Его тоже можно частично решить внеся соответствующие строки в вычисление. Вот только в табличном виде, не в качестве подчиненной, а именно в виде таблицы, эти созданные кнопочки Удалить напротив каждого файла и Добавить под ними - работать не будут. А лишнее всегда смущает пользователей.
- Физическое копирование файлов, фактически их дублирование, решает проблемы пункта два, но выедает место на диске и бекап начинает пухнуть как на дрожжах, если включает файлы.
- Перемещение файлов в одну таблицу позволяет исключить проблему съедания пространства и бекапа. При этом, если почистить поле файл в таблице, из которой файлы были перемещены (сами они не исчезнут, поскольку Вы сделаете перенос посредством вычислений) - пропадут битые ссылки. Т.е. пункт 2 частично станет не актуален, но неудобство в нем описанное останется. Очень важно, чтобы файлы, которые теперь перемещены не были удалены из таблицы, в которую они теперь попали, поскольку поле Файл становится разным. В одной пустое, в другой - есть файлы. Пару раз я данные потерял. Физически они на диске лежат, только ссылок на них нигде не остается. Здесь танцы с бубнами и начинаются.
CbCoder (08 Февраль 2013 - 11:54) писал:
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#14
Отправлено 22 Ноябрь 2013 - 11:15
Еще вопрос. Если все же делать по описанию и одну объявлять пассивной, обязательно проставлять номера синхронизируемых полей в соседствующие текстовые ячейки? Умолчание не заложено на предмет того, что если поле пустое, то номера совпадают?
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#15 Гость_Roman_*
Отправлено 22 Ноябрь 2013 - 11:55
#16
Отправлено 22 Ноябрь 2013 - 12:06
Roman (22 Ноябрь 2013 - 11:55) писал:
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#17 Гость_Roman_*
Отправлено 22 Ноябрь 2013 - 12:12
#18
Отправлено 22 Ноябрь 2013 - 12:28
andibrag (22 Ноябрь 2013 - 12:06) писал:
Roman (22 Ноябрь 2013 - 12:12) писал:
Как нужно сделать в текущем варианте? Одну объявить активной, например ту, которая выгружает данные, вторую пассивной.
В пассивной рядом с каждым полем прописать номер соответствия (т.е. банально номер поля). Папка выгрузки для первой должна совпадать с папкой загрузки для второй. После чего настроить крон. Все верно?
Настройки по полям сохраняются в таблице cb_sync_fields. Какое поле нужно заполнить номером? Делать это в ручном режиме - безумие, проще через mysql.
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#19
Отправлено 22 Ноябрь 2013 - 13:20
andibrag (22 Ноябрь 2013 - 12:28) писал:
Судя по ошибке эти поля программа также пытается заполнить.
Error generated: /cb/include/functions_cron.php(5289) : data_insert() /cb/include/functions_cron.php(5906) : sync_data() /cb/cron.php(70) : eval()'d code(1) : sync_all() /cb/cron.php(70) : eval() Ошибка SQL запроса: INSERT INTO `cb_data113` (`user_id`, `add_time`, `f1726`, `f1686`, `f1515`, `f1513`, `f1564`, `f1516`, `f1509`, `f1679`, `f1512`, `f1520`, `f1764`, `f2521`, `id`, `u`, `s10`, `r`) VALUES ('', '2013-11-22 13:56:13', '-1-5-3-791-', 'Предварительный', '', '1', '8', '2013-11-22 00:00:00', '0,00', '0,00', '0,00', 'Нет', 'Эскизы', 'cb_modules/images/work.png', '276', '1', '276', '1') Duplicate entry '276' for key 'PRIMARY'Или их нужно потом удалять из списка самостоятельно при выборе выше названной опции?
Еще один вопрос. Если id оказывается другой после добавления в базу, происходит отслеживание и замена значений для связанных полей?
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
Количество пользователей, читающих эту тему: 5
0 пользователей, 5 гостей, 0 анонимных