Можно ли в диаграммах Use Case представлять DataBase как Actor?(Прочитано 42120 раз)
Про реализацию понятно. Но в целом, если я опишу и процесс создания нового клиента и новой единицы СВТ в одной из диаграмм последовательности для ВИ "Оформить сервисный лист" - это будет нормально? Вообще мои диаграммы последовательности верно направлены? Или я что-то грубо нарушаю?
Вообще мне они показались мало полезными. Поскольку Вы проектирует, а не просто рисуете, то каждая модель должна отвечать на вопросы и продвигать вас к ясному решению. Мне кажется диаграммы последовательности должны писаться в некотором "программистком" стиле в терминах реакции системы, т.е. системных событий операций и реализаций этих операций.

Нужно ли Добавление клиента и добавление СВТ показать на СДВИ? Ведь эти пункты являются составной частью ВИ - Оформление сервисного листа. Отдельных пунктов в меню сайта у меня нет, но есть возможность выбрать эти пункты из формы оформления сервисного листа.Возможно я не так выразился.
Тут следует исходить из принципа минимальности. Если все и так понято, зачем прегружать
Хотя в вашем случае, если нет отдельных пунктов, значит нет конкретных ВИ, т.е. эти ВИ запускаются только при выполнении некоторого базового, но тут ведь возможны ситуации по условию:
1. клиента нет - добавить нового - выполняем ВИ, это расширение
2. клиент есть - ищем клиента - выполняем ВИ, возможно всегда, тогда включение
Но в целом это не важно. Вы же один работаете, другое дело, когда нужно распределять работу. Кроме того возможно поиск клиента может иметь самостоятельное значение в других местах
Insert добавляет в таблицу сервисного листа только индекс клиента (id). Сами данные клиента вносятся в таблицу Клиента.
Или я что-то не так понял? Почему моветон? Можно как то по другому добавлять данные в таблицы помимо комманды insert ?
На самом деле это исполнение не поддерживаемой стандартной процедуры ссылочной целостности. Если у вас нужно выбрать клиента, а его нет в списке, вы конечно можете сделать  триггер на вставку новой записи по заявке или процедуру на изменение в поле комбо, когда добавляет нечто и система автоматом делает инсерт в таблицу Клиент, возвращает полученный id и рефрешить запрос по комбо.
Возможно этого достаточно, если требуется только добавить ФИО, а если адреса, контактная информация, именование орагнизации, паспортные данные и т.п.? Конечно все можно свести в одну форму и при кнопке сабмит все аккуратно запросом раскладывать по таблицам. Особенно если вы используете MyISAM MySQL , то поддержание целостности и непротиворечивости лежит на плечах вашего скрипта

Понятно я объяснил? К тому же следует учесть и сеансовость работы через веб



Переделал ДП для ВИ "Оформление сервисного листа". Показал возможность выбора из списка как клиента, так и зарегистрированных на него единиц СВТ..

Прикрепил скрины с моего сайта, чтобы показать, как я ввожу и выбираю клиента.
Ссылочная целостность у меня работает. Таблицы InnoDB. Поддержание целосности лежит на скрипте (проверяется отсутствие одинаковых записей перед добавлением нового клиента, модели СВТ, Новой Единицы СВТ и т.д.). Для этого и сделаны формы ввода в  справочники моделей, категорий, брэндов, организаций, городов, должностей и т.д.).
Удаляя из справочника строчку должности - удаляются и все записи где использовалась эта должность. Изменяя её в справочнике - меняются все данные. Следовательно On Delete Cascade и On Update Cascade работают.



По поводу выбора клиента из комбика.
Типичная ошибка начинающего программера. Я понимаю проект учебный, но
если у вас будет много, очень много клиентов. Ну не меньше несколько сотен, Вы их тоже все будете загонять в комбик? А сам список как формируете, вероятно прямо на браузер клиента портируете весь список чухом?
Хорошо если вы продумали такое поведение датасета, при котором происходит подгрузка данных по мере движения в комбике



дааа, не самое лучшее интерфейсное решение. много вопросов возникает: как найти клиента, что делать с группировкой клиентов, да и просто долго выбирать из такого списка.
я бы предложил посмотреть на то, как организован интерфейс выбора авторов на lib.rus.ec
Лью воду...



По поводу выбора клиента из комбика.
Типичная ошибка начинающего программера. Я понимаю проект учебный, но
если у вас будет много, очень много клиентов. Ну не меньше несколько сотен, Вы их тоже все будете загонять в комбик? А сам список как формируете, вероятно прямо на браузер клиента портируете весь список чухом?
Хорошо если вы продумали такое поведение датасета, при котором происходит подгрузка данных по мере движения в комбике
В комбик я подгружаю чухом данные из таблицы клиентов. Всего клиентов не более 1500 из которых наверняка всех никогда не зарегистрируем.
С другой стороны я подумал об этом перед реализацией. Я проверил возможность выбора из всего этого списка по первым набранным буквам. Вываливается список, жмакаешь и тут же курсор выделяет нужные фамилии. Вообще Вы верно заметили - учебный проект. Я переделаю исходя из предложений, пожеланий коллег. Я вообще по ходу написания изучал php, html.
Цитата: Водолей
я бы предложил посмотреть на то, как организован интерфейс выбора авторов на lib.rus.ec
Спасибо за предложение. Я после защиты обязательно займусь дальнейшим изучением предмета. Мне всегда это всё нравилось. Да и хватит пользоваться трудами других и не знать как это всё работает изнутри. Нужно уже и самому в жизни что-то сделать! :)

ЗЫ: да и добавить форму поиска клиента не проблема. Самый наверное простой вариант, который я и реализую позже.
« Последнее редактирование: 16 Февраля 2011, 17:29:58 от KJIaBogaB »



По поводу выбора клиента из комбика.
Типичная ошибка начинающего программера. Я понимаю проект учебный, но
если у вас будет много, очень много клиентов. Ну не меньше несколько сотен, Вы их тоже все будете загонять в комбик? А сам список как формируете, вероятно прямо на браузер клиента портируете весь список чухом?
Хорошо если вы продумали такое поведение датасета, при котором происходит подгрузка данных по мере движения в комбике

Я например всегда через поиск делал вывод из больших справочников, по первым буквам фамилии например, потом давал соответствующий LIKE в SQL запросе, и уже тащились на клиента не все записи из справочника.
"Politics is the art of looking for trouble, finding it, misdiagnosing it, and then misapplying the wrong remedies" (c)
Мой блог
http://www.yurybuluy.blogspot.com/



Я например всегда через поиск делал вывод из больших справочников, по первым буквам фамилии например, потом давал соответствующий LIKE в SQL запросе, и уже тащились на клиента не все записи из справочника.
Ну примерно так и я хочу сделать.. Спасибо за подсказку.

Я вот другого не понял:
Цитата: Galogen
Однако вводить клиента командой insert - это моветон на мой взгляд, такое допустимо для каких-то перечислений
всё же моветон клиента так вставлять, как я реализовал? Или у меня нормально?
Я коммандой insert вставляю в таблицу клиента текстовые поля (ФИО), а организацию, тип клиента, местонахождение, должность - вставляются значения внешних ключей соответствующих родительских таблиц (выбранных из комбиков).
Подробнее рассказать можете где что не так?
« Последнее редактирование: 19 Февраля 2011, 18:13:45 от KJIaBogaB »



Я вот другого не понял:всё же моветон клиента так вставлять, как я реализовал? Или у меня нормально?
Я коммандой insert вставляю в таблицу клиента текстовые поля (ФИО), а организацию, тип клиента, местонахождение, должность - вставляются значения внешних ключей соответствующих родительских таблиц (выбранных из комбиков).
Подробнее рассказать можете где что не так?
как показано на ваших скриншотах - нормально. Это по сути отдельный ВИ, который вызывается в Вашем случае, только из документа оформления заявки. Это хорошо, это не моветон

моветоном я бы считал такое действие (а так иногда делают)
нет клиента - в комбике ввести фио, по событию выхода или принудительно жамкая на рядом кнопочку делаем insert, получаем новый id, обновляем список, подставляем новое ФИО в форму

моветоном я считаю получения списка клиента в выпадающем списке - это нормально для однопользовательских десктопных систем с очень ограниченным списком

для вебприложения, для больших списков комбик не очень подходит. Для этих целей лучше некий компонет с кнопкой выбора, которая запускает некую поисковую форму или компонент с "интеллектуальной подгрузкой", т.е. вы вводите фио или ее часть, посылается запрос на сервер, если результат запроса 1 запись, производится подстановка ФИО и заполнение других данных формы, если возвращается несколько записей, отображается этот список из которого Вы и выбираете. Хотя тоже следует предусмотреть ситуации когда и таким образом можно получить слишком большой список



Спасибо всем за советы, помощь и предложения.
Защитился на 5. Рекомендовали поступать в аспирантуру.
Я конечно понимаю, что уровень не тот, но всё равно очень приятно...



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



Поздравляю! Это хорошо. Помните, UML не простой язык, разработка ПО - сложный многообразный процесс. Обучиться можно только долго и постоянно практикуя.
Вы встали на начала пути. Найдите силы и мотивы для его продвижения. Это того стоит!
Я сейчас пойду по верному пути - сначала изучу UML, т.к. его ещё изучать и изучать. Хочу связать все ниточки процесса проектирования приложения от прецедентов до кодогенерации. А то диаграммы классов вроде бы аналогичны диаграммам ER, но это далеко не весь их функционал. Так же и с остальными диаграммами. Ещё и шаблоны для меня пока темный лес. Но я интуитивно понимаю для чего они нужны, но нужно вникать.
Начал пролистывать книгу Нейштадта и Эрлоу (по памяти пишу могу ошибаться)  - нашел интересный пример того, как не нужно показывать диаграммы прецедентов. Сразу вспомнил свои диаграммы :)
Вообщем ещё учиться и учиться.
Я загорелся этим делом. Всегда мечтал программировать (ну и сейчас осознаю, что и проектировать) - но затянула "обслуга" вычислительной техники и сетей передачи данных так, что забыл про все свои мечты. А тут уже 30 лет и надо что-то для себя решать :) Решил.




 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19