я, например, делаю так. у меня есть основной файл для работы с картой и вспомогательные файлы для работы с БД - дополнение, удаление, изменение данных и т.д.
Например, для внесения данных о создаваемой метке (когда пользователь щелкнет по карте) служит файл addobject.php
После щелчка по карте я создаю геообъект, присваиваю ему необходимы свойства и записываю в БД. В ответ БД присылает "ОК" (мол, записалось все). Если это получено, то рисую объект на карте.Пресеты у меня при создании все идут одинаковые, потэтому я в базу их не передаю, они там такие же по дефолту. Изменяю потом в другом месте, где разрешено редактирование объекта, тогда уже в базу передаются подсказки, типы иконки и пр.
var MyMarks=new ymaps.GeoObjectCollection()
myMap.geoObjects.add(MyMarks)
......
myMap.events.add('click', function (e) { var coords = e.get('coordPosition'); //получаю координаты щелчка
и если все нормлаьно, то отсылка ответа, что все ОК
$json='{"status": "OK"}'; echo $json;
Для того, чтобы прочитать из базы все, что туда поназаписали, шлю запрос к другому файлу, передавая туда ид пользователя
$.getJSON("getmapobj.php",{u_id:UserId}, function(json){ // а это запрос из БД if (json.status == 'OK') { var myobj=json; for (var key in myobj) { //key=id1, id2.... if(key!="status"){ var m = new ymaps.GeoObject({geometry: myobj[key].geometry, properties:myobj[key].properties}, myobj[key].options); MyMarks.add(m);
.....
файл getmapobj.php, выбирает все принадлежащие пользователю объекты и возвращает ответ вида