DataLife Engine / Начал работу над созданием внешних связей таблиц и наткнулся на кучу багов

Начал работу над созданием внешних связей таблиц и наткнулся на кучу багов

 

Ну вот и закончился четвёртый день рабочей недели. А дел я сделал, как всегда, меньше, чем планировал. Как всегда, короче. Ну а прямо с утреца я принялся реализовывать диалоговое окно, в котором можно с помощью удобного интерфейса связывать таблицы базы данных FOREIGN KEY-ограничениями. Если вы знаете SQLite, то вы знаете что это такое. 

Вчера же я немного переработал. Уже после написания поста я решил-таки доделать и не оставлять на завтра кое-какие поправки м главной модели-представлении главного окна. Закончил поздно. Тест-драйв программы решил немного отложить до тех времён, пока не будут готовы функции по созданию и оперированию объектами базы данных. А потом проверить нужно всё обязательно.

 

Вот начал я уже кодить бэкенд этого окна. А именно уже создание связей в объектах базы данных и объектах C# классов. Вот такой красивый код. Организовал цепочку вызовов методов класса при рекурсивном обходе по настройкам таблиц. Но вот тут меня кое-что прервало. Я подумал: а почему бы перед тем, как я начну реализовывать автоматическую расстановку ключей FOREIGN на таблицы, не создать бы таблицу с таким ключом через интерфейс программы. Окей, пробую. И тут-бац, и какая-то ерунда: создалось ограничение, но каким-то образом обрезались все настройки для внешнего ключа вместе с определением типа самого ключа. Эх, баги, сколько их. Ведь при создании класса для работы с SQLite я не слишком тщательно всё протестировал. И вот оно, пожалуйста. Наоставлял косяков. 

Ну косяки я сегодня обнаружил и в диалоговом окне редактирования ограничений таблиц. Там это скорее моя недоделка. Не реализовал подстановку значений настроек для этого типа ключа так, чтобы это окно уже выводило установленные ранее настройки. Окей, поправил. Идём далее. А далее были косяки при парсинге SQL-строк запросов создания таблиц. Их я вытаскиваю из служебной таблицы sqlite_master. Это нужно, чтобы сформировать C#-объекты с настройками объектов базы данных. Ну, окей, поправил. Сейчас внешние ключи создаются корректно.

Короче, полностью диалог по внешним связям я не доделал, точнее, его бэкенд. А ведь надеялся доделать. В очередной раз пришёл к мысли, что в предполагаемые сроки мне не доделать эту программу. Слишком всё идет не так быстро, как того хочется.

В общем программе необходим тест-драйв по максимуму. Иначе куча багов останется. А то, что ещё баги имеются - в этом можно не сомневаться. Решил, закончу работу с объектами базы данных и протестирую получившийся функционал. 

Ну а на этом у меня пока всё и завтра продолжу на том, на чём остановился - реализация внешних связей для таблиц БД. Ну и до новых свершений.

20-04-2023, 19:24
Вернуться назад