|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
Доброе время суток уважаемые знатоки. Тут появилась проблема. Надо создать базу обработки заказов. По ходу дела для таблицы заказов необходимо где-то около 40-50 полей. Особенность: к разным полям должны иметь разный доступ люди из разных подразделений(расчет, доставка, экономисты и пр.). Есть поля, которые должны видеть(обрабатывать) пользователи с разными привилегиями. Другие поля нужны только какому-то конкретному отделу. Опыта проектирования баз нет. Техзадания как такового тоже. Есть мысль разделить таблицу на несколько, т.к. вероятность того, что с такой длинной записью одновременно будут работать велика. Либо как-то можно делать блокировки на поле, а не на всю запись(как не знаю)? Либо использовать представления? Предполагается использовать MS SQLServer+Delphi. У кого есть опыт в такой ситуации - поделитесь. Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2003, 16:04 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
2 Volodja Интересно, а как бы вы отнеслись к такому вопросу: "Я машину водить не умею, но планирую завтра за полчаса проехать из Москвы в Рязань, так не подскажете ли, какую передачу сразу воткнуть, чтобы успеть???..." ---------------------- Вариантов на вашем месте несколько: 1. Есть деньги. Обратиться к специалистам с опытом успешной разработки аналогичных проектов. Обойдется недешево, но будет сделано быстро и со вкусом. Отдельный вопрос, правда, как таких ребят найти. 2. Деньги есть, но мало. Опять же обратиться к специалистам, предварительно написав ТЗ. Пусть хотя бы вам структуру базы сделают. Поддерживать грамотно спроектированную структуру на порядок легче, чем с нуля изобретать велосипед. GUI хоть и кривое, но сами на Дельфи смастерите, если есть такой опыт. 3. Денег нет. Учиться, учиться и учиться. Как завещал великий известно кто. Систематически читать умные книжки и делать (или пытаться) так, как в них написано. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2003, 16:22 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
Если необходима изощрённая система разделения прав доступа можно посмотреть в сторону Lotus Domino. С другой стороны если опыта нет то какая разница? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2003, 16:32 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
По ходу дела для таблицы заказов необходимо где-то около 40-50 полей. Особенность: к разным полям должны иметь разный доступ люди из разных подразделений(расчет, доставка, экономисты и пр.). Есть поля, которые должны видеть(обрабатывать) пользователи с разными привилегиями. Другие поля нужны только какому-то конкретному отделу. Это что же за таблица то такая - и полей как грязи, и доступ надо всем, но не на все. Что-то у вас со структурой не то...Расскажите, чего делаете вообще-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2003, 16:45 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
А как насчёт использования хранимых процедур? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2003, 19:27 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
Вопрос полного профана. Почитайте что-нибудь о проектировании баз. А потом можно с правами разобратся. В MSSQL для этого есть множество способов. Так же существует множество способов ограничивать права на клиенте. Тут не институт, а форум, который может помочь разобраться со сложными случаем, но никогда не будет работат за Вас. Подход вчерашнего студента, который привык, что ему должны все разжевать и в рот положить. Не дождетесь. Возможно, кому-то и не жаль своих знаний, но этот "кто-то" не будет напрягатся, что бы их передать. К тому же это бестолку. Сколько разных книг и статей в инете и на полках магазинов. Но самому добывать знания влом. Легче запостить на форум. В надежде, что этот самый "кто-то" все сделает. Не сделает. Тот, кто может сделать, и так занят своими проектами и не может отвлекатся на всяую постороннюю вещь. В принципе, кто-то из тех, кто может, и построит базу, но для этого ему нужно ТЗ. Давайте ТЗ, и я Вам спроектирую. К счастью, ТЗ Вы не напишете. ===== akuz. Ты непонятными словами не бросайся ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2003, 21:54 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
А не проще ли эти полномочия в интерфейсе прописать? Делаете в базе какую-то служебную таблицу, в которой определяете для каждого объекта интерфейса список разрешенных юзеров. При загрузке , к примеру, формы, Ваша программа определяет, какие элементы интерфейса сделать доступными для данного пользователя, а какие скрыть. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2003, 17:12 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
2 Volodja: \r \r Надо создать базу обработки заказов. По ходу дела для таблицы заказов необходимо где-то около 40-50 полей. Особенность: к разным полям должны иметь разный доступ люди из разных подразделений(расчет, доставка, экономисты и пр.). Есть поля, которые должны видеть(обрабатывать) пользователи с разными привилегиями. Другие поля нужны только какому-то конкретному отделу.....\r ...\r ...Есть мысль разделить таблицу на несколько, т.к. вероятность того, что с такой длинной записью одновременно будут работать велика. Либо как-то можно делать блокировки на поле, а не на всю запись(как не знаю)? \r \r Собственно сама идея:\r вынести т.е атрибуты(столбцы) сущностей(таблиц), к-рые будут изменяться одной группой пользователей в отдельные сущности. Установить идентифицирующие (т.е. внешний ключ в дочерней таблице является также и первичным) отношения 1:1 между сущностями. \r \r Причины? \r 1) Размер строки в MSSQL не может превышать ~8К, т.е возможно вам просто физически не удастся\r запихнуть такое кол-во столбцов в одну таблицу, особенно если там есть длинные varchar.\r 2) Суммарный размер данных на 1 индекс в MSSQL не может превышать 900 байт, количество столбов\r на 1 индекс <=16. (Хотя зависит конечно от того какие CRUD-запросы планируются и какие\r композитные индексы под них понадобятся)\r 3) Возможное кол-во row (и возможно tab) блокировок уменьшится, т.к скорее всего столбцы\r используются разными группами пользователей для разных CRUD операций. Серверу гораздо легче\r будет обновлять индексную информацию. Также возможно уменьшится кол-во сортировок в страницах,\r если будет использоваться кластерный индекс например.\r 4) MSSQL позволяет назначать права пользователям и на отдельные столбцы и группы в одной\r и той же таблице, однако гораздо элегантнее назначать права группам сразу на таблицу целиком.\r \r ...Техзадания как такового тоже.... \r \r ТЗ на БД как на подсистему приложения/ИС (далее - "систему") и ТЗ на саму систему очень желательно, я бы даже сказал - обязательно! Поскольку ТЗ - это не документ на 3 страницах и конечно требует затрат на создание, то кому и для чего он нужен?\r \r 1. Разработчикам (исполнителям) . Собственно для Разработчиков ТЗ - это важный, центральный документ,\r в к-рый каждый должен всегда заглядывать чтобы не отклоняться от т.н "генеральной линии" разработки\r и дабы не заниматься самодеятельностью, к-рая может просто похоронить проект.\r Вобщем поскольку ТЗ содержит как функциональные так и не функциональные требования на систему в кратком виде,\r то ТЗ прекрасный документ для этих целей. Следующим архитектурно более подробным документом является\r Технический проект (ТП).\r \r 2. Заказчику . Собственно для Заказчика ТЗ - это важный документ (если конечно следовать\r де-факто цивилизованным принципам создания систем и опять же стандратам вроде ГОСТ,ISO,SEI):\r общая спецификация на основании к-рой система будет приниматься в эксплуатацию.\r ТЗ как правило утверждается Заказчиком, но вы здесь про заказчика умалчиваете, так что... :)\r \r В силу свой специфичности БД как подсистемы, ТЗ на БД естественно отличается от ТЗ на всю систему.\r Вот некоторые причины: ТЗ на систему как правило выдерживается в соответствии\r с выбранным стандартом, например, ГОСТ 34.602 (в РФ) и это ТЗ показывается Заказчику, поэтому этот\r документ следует определенным формальностям . ТЗ на БД не обязательно выдерживать в соответствии, поскольку: а) это ТЗ как правило редко показывается Заказчику (действительно ТЗ на систему\r уже содержит общие спецификации на хранимые и обрабатываемые данные и подсистемы (СУБД и тд.)),\r б) опять же если следовать тем же стандартам, например, 34.602, то он слишком общий\r и все-таки более подходит для АС или ее подсистема, а БД слишком специфична,\r в) такой "неформализм" действительно гораздо удобнее, тогда ТЗ на БД - финальный документ\r и ТП на БД как бы не нужен.\r (Хотя я знаю пару-тройку контор в к-рых ну очень педантичные и неленивые люди и они всегда делают\r отдельно как ТЗ, так и ТП.)\r Следует отметить, что я видел вобщем много различных вариантов ТЗ на БД, как наших, так и импортных,\r и скажем сумел ИМХО достаточно рационально обобщить самое полезное именно для разработчиков.\r Итак, ТЗ на БД что содержит этот документ, если в контексте всего вышесказанного?\r \r НЕФОРМАЛЬНОЕ ОПРЕДЕЛЕНИЕ: ТЗ - это документ-спецификация, содержащий все необходимое чтобы:\r а) на основе него создать БД, удовлетворяющую всем заложенным в ТЗ однозначным требованиям;\r б) на основе него принять эту БД в эксплуатацию, т.е. проверить что БД удовлетворяет требованиям; и\r в) на основе него оттестировать эту БД, т.е. подтвердить некую достаточную работоспособность БД.\r \r СОДЕРЖИТ: (разделы для реляционной БД без OLAP)\r \r 1. Описания бизнес-правил. \r (- отношения между сущностями, целостность данных, описанные естественным языком)\r 2. Описания доменов. \r (- понятно)\r 3. Описания сущностей (логическая модель). \r (- желательный раздел, даже если есть п.3)\r 4. Описания таблиц (физическая модель). \r (- относительно избыточный раздел, если есть п.4, нет п.7)\r 5. Описания запросов. \r (- все запросы необходимые приложению и описанные естественным языком)\r 6. Описания правил безопасности. \r (- списки групп/пользователей, права на операции, ACL для таблиц и других объектов)\r 7. Требования к производительности. \r (- требования времени исполнения и ресурсам при выполнении запросов, максимально-допустимые нагрузки,\r рекомендации по индексам)\r 8. Требования к тестовым данным и запросам. \r (- тоже что и п.5, но упор делается на именно на "стрессовость" и обеспечение производительности)\r \r ПЕРВИЧНЫЕ ДОКУМЕНТЫ: \r 1. ТЗ на создание ИС/приложения.\r 2. Словарь терминов предметной области (если не входит в п.1 или в ТЗ на БД).\r 3. ......\r \r ПОЛУЧАЕМЫЕ АРТЕФАКТЫ: \r 1. Логическая модель данных.\r 2. Физическая модель данных\r (3. БД или ее DDL-cкрипты.)\r \r ОСНОВНЫЕ ОСОБЕННОСТИ: \r 1. ТЗ на БД изменяется только в случае изменения основного ТЗ на систему или/и Словаря,\r хотя допустимо что при анализе ТЗ на БД возникнут идеи, к-рые могут повлечть измения\r обеих документов.\r 2. ТЗ на БД единственный документ определяющий структуру БД с необходимым\r уровнем абстракции, ТЗ не должно содержать каких-либо ER-диаграмм, схем, SQL-кода\r поскольку именно требования, описания и рекомендации к БД, выраженные естественным языком\r как правило не меняются, а вот реализация (SQL, индексы, настройка СУБД/БД)\r как правило меняется в процессе тестирования и оптимизации\r \r ... Либо использовать представления? \r \r Возможности представлений/видов (обычных,индексированных,сегментированных) достаточно ограничены (все это описано в BOL) против тех же хранимых процедур(ХП) или функций. По собственному и чужому опыту знаю, что в реальной жизни им мало находится места. Возможно меня кто-то поправит. Как правило реальные БД - это таблицы, ограничения целостности, триггеры, индексы и ХП/функции\r \r Предполагается использовать MS SQLServer+Delphi. \r \r Если не секрет, то если кратко, чем обусловлен такой выбор? Выбор вполне стандартный (у нас тоже в 90%-MSSQL и в >60% проектов - Delphi), однако могут быть все же и другие варианты\r \r ...Опыта проектирования баз нет. \r \r См. посты Работа: Оцените, плз, сколько это может стоить(+) (1,2,3), Работа: Перспективы свободных художников в Москве (1,2,3,4,5), обсуждение орг.вопросов, затрат,стоимости проекта - расширенный вариант поста Циничного Кота\r \r 2 Циничный Кот: \r Вариантов на вашем месте несколько: ...(и пошли, пошли коммерческие варианты!) \r \r Конечно правильные варианты, но может дать человеку самому поплавать? Глядишь и выяснится нужны ему такие варианты или нет, все-таки этот пока только БД+приложение, а не серьезная ИС типа самодельной CRM или MRP :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2003, 22:02 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
Всем, здравстуйте! Даже не ожидал такого количества ответов. И не ожидал, что я стану тут отрицательным персонажем:-) То что надо учиться, то с этим не поспоришь(2 Циничный Кот). А при наличии денег(больших тем более) проблем не существует вообще. Что касается чтения (Cat2). То надо сказать, перечитал не мало. Программирую тоже не первый год. Но, к сожалению, с базами столкнулся впервые и все рассуждения в литературе, формальные примеры не совсем понятны. И потом я не просил чтобы мне сделали всю мою работу. Подчеркну, что у меня нет опыта именно ПРОЕКТИРОВАНИЯ БД. И если я спросил: можно так или лучше по другому, я ожидал короткого ответа. Меня больше интересовал ответ на количество столбцов(спасибо Репликанту за объяснения и информацию). Интуитивно я предварительно разбил эту таблицу на три именно с отношением 1:1. Что касается ТЗ. То это самая главная проблема. Вообще-то горячей необходимости в этой работе нет. Но на будущее, возможно, такая база может и понадобиться. Поэтому я в плане самообразования и согласился изучить эту возможность. Но, подчеркну, меня никто не гонит. Те кому нужна эта база не могут составить ТЗ принципиально. Мне же приходится изучать их работу и пытаться как-то все увязать. Пока не совсем получается. В общем приходится самому себе ставить задачи и самому их разрешать:-( При отсутствии опыта, надеюсь все согласятся, даже поставить грамотно задачу трудно. Что касается самого программироания и разделения прав, то тут проблем нет. 2Репликант MS SQLServer+Delphi - принятый у нас инструментарий. И было бы интересно хоть одним глазком взглянуть, как в конце концов выглядят эти ТЗ(конкретные, а не общие рассуждения). Для примера, хоть один? Ладно спасибо всем за понимание. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2003, 12:06 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
2 Репликант Человек просил поделиться опытом. Зачем??? Чтобы создать систему, которая умеет делать что-то полезное и приносить деньги. Почему бы тогда этому человеку (организации) не потратиться для начала???... По моему опыту - последствия профессиональной некомпетентности обходятся очень дорого. Хотя если кто-то желает оплачивать это плавание - я лично возражать не буду.. 2 Volodja А при наличии денег(больших тем более) проблем не существует вообще. Имхо, проблем у вас станет только больше. И их размер - тоже. Как и их последствия. Впрочем, вам это пока неактуально. Но, подчеркну, меня никто не гонит. Тогда я бы на вашем месте написал ТЗ. Или хотя бы попробовал. Зафиксировал ТЗ. На бумаге. Потом, формально следуя ТЗ, попробовал бы создать структуру БД. Опять же в соответствии с формальными спецификациями - выделением сущностей, отношений и т.п. Пока это будете делать, выяснится масса ньюансов. Зафиксировал структуру. Потом написал бы код. А потом вернулся в самое начало - к ТЗ. Скорее всего оно покажется довольно убогим и не покрывающим несколько довольно важных областей. То же самое - со структурой. Если станет не лень - то еще раз полностью переписать БД. В идеале весь этот бы процесс сопровождать замером времени - сколько фактически ушло и на какие этапы. Особенно познавательно бывает процентное соотношение... :о) Дерзайте... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2003, 14:06 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
2Циничный Кот Спасибо за дельный совет. Сразу бы так. Чтобы не было недоразумений - может подскажите заодно, какие вопросы принято обсуждать на этом форуме, а какие неприемлемы? Чтобы я не задавал раздражающих знающих людей вопросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2003, 14:36 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
2Циничный Кот Спасибо за дельный совет. Сразу бы так. Чтобы не было недоразумений - может подскажите заодно, какие вопросы принято обсуждать на этом форуме, а какие неприемлемы? Чтобы я не задавал раздражающих знающих людей вопросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2003, 14:48 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
2 Циничный Кот: Почему бы тогда этому человеку (организации) не потратиться для начала???... По моему опыту - последствия профессиональной некомпетентности обходятся очень дорого. Золотые слова! Вот если бы все так думали и действовали ( особенно руководители и менеджеры ) 2 Volodja: И было бы интересно хоть одним глазком взглянуть, как в конце концов выглядят эти ТЗ(конкретные, а не общие рассуждения). Для примера, хоть один? 1. В части моего поста, посвященной ТЗ на БД (Та, где: ..СОДЕРЖИТ:(разделы для реляционной БД без OLAP) ...), информации вполне достаточно, нет, более чем достаточно! Все что нужно сделать - это просто начать писать этот документ, а вожделенные примеры здесь мало чем помогут, поскольку ТЗ на БД не такой формальный документ и писать его надо исходя из простого принципа: понятно, однозначно и лаконично. (А чужое ТЗ хотя и легко переделать, но этот путь может завести в дебри при непонимании сути) Воспользуйтесь также советом Циничного Кота. Если что-то уж совсем поставит в тупик, то существует сей форум, постите - посмотрим, подскажем 2. Чтобы познакомиться с отечественным стандартом на ТЗ (ГОСТ 34.602 свободно доступен и выложен на очень многих ИТ-сайтах Рунета) поищите в Инете (просто сейчас ссылок проверенных нету под рукой), ключевые слова: ГОСТ, АС, 34, 602, автоматизированная, система, создание.... Полное название документа: ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ ГОСТ 34.602-89 Комплекс стандартов на автоматизированные системы. Техническое задание на создание автоматизированной системы Information technology. Set of standards for automated systems. Technical directions for developing of automated system ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2003, 00:08 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
кстате, еще одно ГРОМАДНОЕ преимущество ТЗ, когда оно подписано и юзер вспоминает о чем-то, тебе это сильно мешает, то сославшись на ТЗ ты можешь отказаться делать это. Потому что оно подписанно . а как пишется... могу посмотреть... Правда там описанно именно то что требуется от программного комплекса как от такового, тобишь без проекта базы без блок-схем проги и прочего... основные разделы 1. Справочники (то что необходимо пользователю. Например произошли какие- либо нарушения в технологическом процессе это надо зафиксировать в виде текстового сообщения. Заявка была на то что все тексты сообщений строго фиксированны и соответственно рождается справочник "Технологических нарушений". Разумеется дальше ты этот раздер расширяешь, добавляя туда например список людей) 2. Входные данные (тут описано то что поступает на влод в систему. У меня расписано то что желают пользователи, плюс названия параметров (они специфичны) их еиницы измерения ряд еще уточняющих параметров) 3. Отчетная часть (описание отчетов с бланками , с обязательным указанием расчетных формул именно в тех. задании, с точным указанием названия отчета и прочее) вот в принципе и все, это задание от пользователя, утвержденное, на осное этого проектируется база, далее программа (у меня этот пункт пропукается, я его заменяю на подстраивание универсального блока) далее отладка на месте, тестовые испытание и сдача в эксплуатацию в соответствии с пунктами ТЗ . В таком режиме мы и работаем. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2003, 03:47 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
да. а по вопросам... обычно не очень приветствуется, если спрашиваются вопросы из хелпа, особенно что-то довольно элементарное. Иногда следует пользоваться кнопкой "найти" на этом форуме. Возможно, до тебя этот вопрос уже кто-то задавал и ответ уже есть в форуме. Таким образом и ты ответ быстрее получишь и люди не будут второй раз писать одно и тоже... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2003, 03:54 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
Ладно, спасибо. Надо еще раз перечитать всю эту муть про сущности - связи и иже с ними. В принципе на вопрос об ограничении на количество полей я ответ получил. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2003, 09:07 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
2 StarWind: кстате, еще одно ГРОМАДНОЕ преимущество ТЗ, когда оно подписано и юзер вспоминает о чем-то, тебе это сильно мешает, то сославшись на ТЗ ты можешь отказаться делать это. Потому что оно подписанно. Такой вариант возможен, если только это ТЗ окончательное на данном этапе Х (что закреплено в Договоре "О создании") и та функциональность, о к-рой он вспомнил не существенна для правильно-необходимой работы системы ...вот в принципе и все, это задание от пользователя, утвержденное, на осное этого проектируется база, далее программа По науке и по стандартам де-факто ТЗ изменяется не юзером(какой-то там будущий пользователь системы) или с помощью него, а самим Исполнителем(Разработчиком) или Заказчиком (или его специалистами), причем обе стороны измненяют его по согласованию с другой стороной. (В той же РФ ТЗ как правило "от и до" составляется самим Исполнителем.) Пользователи же системы, к-рых Заказчик назначил в помощь Разработчику для сбора требований могут изменять только свои анкеты на этом самом этапе сбора ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2003, 23:54 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
сорри, действительно не верно выразился, не юзер а именно заказчик. а по поводу того что "ТЗ окончательное на данном этапе Х (что закреплено в Договоре "О создании")" Так без этого стараемся и не начинать работы... Иначе потом проблем не оберешься. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2003, 03:44 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
Интересно. Здесь тусуются только разработчики программистских фирм? Простых программистов из компьютерных центров не программистских фирм нет? Я из вторых. Поэтому и проблемы с ТЗ. Кто его будет мне писать? Все надо делать самому. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2003, 12:03 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
Все сами и пишем - а ты думал, сидят программисты, им добрый дядя приносит ТЗ и они точно по нему кодят :) "Нет сынок, это фантастика" - (с) реклама сыра Сами сидим и все придумываем. И ТЗ, и структуру данных, и сами же и кодим... И не из программистских фирм :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2003, 13:30 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
И ТЗ, и структуру данных, и сами же и кодим... ... сами же тестируем, сами у себя работу принимаем, сами себе систему ставим, сами пользуемся, и сами же себе зряплату платим... <Just a Joke> ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2003, 13:52 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
Кроме сами пользуемся ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2003, 14:28 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
2 Volodja: Простых программистов из компьютерных центров не программистских фирм нет? Я из вторых. Поэтому и проблемы с ТЗ. Не вижу никакой связи. Я когда учился в универе, также еще учился и работал программером в НИВЦ МГУ для всяких околонаучных проектов. Было это еще в далеком 1996-97. Так вот ни одна задача, у нас там не принималась к программированию без: а) статьи (краткая, ознакомительная обрисовка самой научной проблемы), б) ТЗ (собственно требования к программной реализации). А что касается разработчиков из некоммерческих организаций, то там ребята бывают порой на порядок грамотнее и серьезнее относятся к подобным документам ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2003, 23:25 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
Да не принято у нас никакой такой документации. Уже написал три программы без всяких бумаг. И в будущем никакие бумаги не предвидятся. С такой бумагой конечно было бы проще. Можно было бы сказать: А вот, что Вы писали в ТЗ, то и получили. Мечты:-) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2003, 13:05 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
2 Volodja: Да не принято у нас никакой такой документации. Уже написал три программы без всяких бумаг. И в будущем никакие бумаги не предвидятся.... Есть 3 пути, выбора ("дао"): 1. Дао смирения - оставить все как есть и мучаться в глубине души или вести какие свои проекты на стороне по науке и по уму 2. Дао внутреннего оппозицонера (совершенствующего) - дать обоснованные рекомендации начальству, установку так сказать, что лучше делать с ТЗ и тд. Такой путь тернист, чреват непониманием и возможной конфронтацией в случае продолжения выбранной вами линии 3. Дао мудрого человека - взвесить все "за" и "против", так сказать применить WPA к вашей ситуации и на основе этого решения покинуть организацию, сменив ее на более правильную(в смысле процесса производства ПО) или если устраивает хлебность выбрать п.1 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2003, 23:41 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
>Да не принято у нас никакой такой документации. Мне тоже не нужна была документация пока не попал... Про то как НЕ надо делать. Узнаешь у заказчика что ему нужно (если он сам себе это представляет, что редко бывает), записываешь, исходя из объема объявляешь цену и начинаешь делать проект. НО уже ближе к концу выясняется что не хватает ОЧЕНЬ важных решений без которых от программы толку мало. Доделываешь, заказчик при этом вспоминает что ему еще потребуется и т.д. Поэтому в момент когда ты именно записываешь все что нужно заказчику, нужно чтобы он в конце подписался хотя бы. Примитивно, но действенно (проверенно). А ТЗ оформлять очень большая работа и не под силу человеку который с этим не сталкивался. Еще советую вставить в программу баг, который срабатывает в определенную дату. Например после такого то числа прога перестает работать (с бд вообще красота, конект с бд отрубаешь и все). Это на случай если не заплатят (грубо, но в силу Россиийской специфики необходимо), если заплатят, то программе потребуется обновление :-). Вот и все. Все здесь очень примитивно, но действенно. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2003, 16:52 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
Вот, б..., пирожок с капустой. А я был уверен, что я НЕ послал свой первый постинг. Как невыдержанный. Сорю. Поехал отвечать. Первым делом wara. Ограничения на клиенте - ни в коем случае! Возможен вариант, когда на клиенте некоторые действия делаются недоступными, но это должно быть только следствием/дублированием ограничений на сервере. Volodja Я НЕ ВЕРЮ, что для таблицы заказов нужно 40-50 полей. Возможный список 1. Клиент 2. Номер заказа 3. Дата заказа 4. Дата исполнения 5. Условие отгрузки 6. Условие оплаты 7. Условие страхования 8. Отметка о выполнении 9. Лицо принявшее заказ 10. Дата ввода в базу 11. Разрешение на выполнение заказа 12. Лицо, редактировшаее заказ 13. Дата редактирования 16. Предоплата 17. Получатель (если клиент забирает не сам) Ну не получается у меня больше! Репликант> не надо давать новичкам то, что они просят. А описание ТЗ - класное. Volodja 2> Разумеется, для состоящего в штате фирмы программера - грамотное ТЗ - утопия. Обычно, оно заключатся в словах: "Хочу, что бы было так". Но в особо тяжелых случаях я требую завизированную формулу расчета. Что бы на меня не повесили собак за неправильно уплаченные налоги. ======== Пчелы строят прекрасные соты. Но даже самый плохой архитектор отличается от самой лучшей пчелы тем, что сначала он строит в голове. ======== Удачи, Вам, Volodja. Но базы даных - это наиболее разработанный и непонятный класс задач. С нулевого опыта никто правильную базу не построит. Старайтесь следовать правилам нормализации. Это... Мои правила для правильных реляционных баз. В моем вольном изложении (да простят меня Великие!) 1. Любая запись однозначно идентифицируется ключом (Кодд) 2. Значение любого поля не может быть получено на основании содержащейся в базе информации 3. Любое поле должно иметь однозначное толкование ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2003, 20:09 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
Cat2 К Вашему списку у меня еще добавляются: прохождение заказа через несколько отделов и цехов, в каждый надо как минимум дату прохождения, кто провел, коментарии; экономические параметры заказа: стоимость заказа(монтажа доставки), то же цена, пять скидок. Итого на заказ набегает 57 полей. Плюс данные по складированию, доставке, монтажу. Ну с этим вроде проще. Эти этапы в отдельные таблицы хорошо укладывается. Прочитал, что SQL Server поддерживает до 1024 поля в одной таблице. Такую таблицу некрасиво делать? Или все же разбить на несколько меньших таблиц со связью один к одному? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2003, 12:51 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
От вашего списка полей убавлю ещё добрую половину. :) Заказы 1. ID 2. Клиент 3. Номер заказа 4. Дата заказа 5. Дата исполнения 6. Отметка о выполнении 7. Предоплата 8. Получатель (если клиент забирает не сам) Условия 1. Заказ 2. Тип (отгрузки, оплаты и т.д.) 3. Текст прохождение заказа через несколько отделов и цехов, в каждый надо как минимум дату прохождения, кто провел, коментарии; Подтверждения (Workflow) 1. Заказ 2. Тип (принял, утвердил, отредактировал, выполнил и т.д.) 3. Лицо 4. Дата 5. Комментарий экономические параметры заказа: стоимость заказа(монтажа доставки), то же цена, пять скидок. Строки Заказов 1. ID 2. Заказ 3. Предмет/товар (монтаж, доставка, материалы и т.д.) 4. Стоимость 5. Цена Скидки 1. Заказ 2. Строка Заказа (если не указана, то скидка на заказ целиком) 3. Тип 4. Значение (% или сумма) Итого на заказ набегает 57 полей. Итого максимальное кол-во полей в таблице 8. :) Нормализация!!! Порядок не помню (да и не знал никогда:)), но очень высокий, кое-что лучше бы денормализовать, например скидки, вам виднее. Дерзайте, Volodja ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2003, 13:28 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
От вашего списка полей убавлю ещё добрую половину. :) Заказы 1. ID 2. Клиент 3. Номер заказа 4. Дата заказа 5. Дата исполнения 6. Отметка о выполнении 7. Предоплата 8. Получатель (если клиент забирает не сам) Условия 1. Заказ 2. Тип (отгрузки, оплаты и т.д.) 3. Текст прохождение заказа через несколько отделов и цехов, в каждый надо как минимум дату прохождения, кто провел, коментарии; Подтверждения (Workflow) 1. Заказ 2. Тип (принял, утвердил, отредактировал, выполнил и т.д.) 3. Лицо 4. Дата 5. Комментарий экономические параметры заказа: стоимость заказа(монтажа доставки), то же цена, пять скидок. Строки Заказов 1. ID 2. Заказ 3. Предмет/товар (монтаж, доставка, материалы и т.д.) 4. Стоимость 5. Цена Скидки 1. Заказ 2. Строка Заказа (если не указана, то скидка на заказ целиком) 3. Тип 4. Значение (% или сумма) Итого на заказ набегает 57 полей. Итого максимальное кол-во полей в таблице 8. :) Нормализация!!! Порядок не помню (да и не знал никогда:)), но очень высокий, кое-что лучше бы денормализовать, например скидки, вам виднее. Дерзайте, Volodja ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2003, 13:28 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
От вашего списка полей убавлю ещё добрую половину. :) Заказы 1. ID 2. Клиент 3. Номер заказа 4. Дата заказа 5. Дата исполнения 6. Отметка о выполнении 7. Предоплата 8. Получатель (если клиент забирает не сам) Условия 1. Заказ 2. Тип (отгрузки, оплаты и т.д.) 3. Текст прохождение заказа через несколько отделов и цехов, в каждый надо как минимум дату прохождения, кто провел, коментарии; Подтверждения (Workflow) 1. Заказ 2. Тип (принял, утвердил, отредактировал, выполнил и т.д.) 3. Лицо 4. Дата 5. Комментарий экономические параметры заказа: стоимость заказа(монтажа доставки), то же цена, пять скидок. Строки Заказов 1. ID 2. Заказ 3. Предмет/товар (монтаж, доставка, материалы и т.д.) 4. Стоимость 5. Цена Скидки 1. Заказ 2. Строка Заказа (если не указана, то скидка на заказ целиком) 3. Тип 4. Значение (% или сумма) Итого на заказ набегает 57 полей. Итого максимальное кол-во полей в таблице 8. :) Нормализация!!! Порядок не помню (да и не знал никогда:)), но очень высокий, кое-что лучше бы денормализовать, например скидки, вам виднее. Дерзайте, Volodja ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2003, 13:28 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
Круто. Попробую разобраться:-) Сразу видно, что у человека много подобных баз за плечами. Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2003, 13:46 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
Сразу видно, что у человека много подобных баз за плечами. Да нет, просто голова на плечах, а базы мы эти на завтрак кушаем по пять штук к ряду. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2003, 13:58 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
Сразу видно, что у человека много подобных баз за плечами. Да нет, просто голова на плечах, а базы мы эти на завтрак кушаем по пять штук к ряду. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2003, 13:58 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
Сразу видно, что у человека много подобных баз за плечами. Да нет, просто голова на плечах, а базы мы эти на завтрак кушаем по пять штук к ряду. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2003, 13:58 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
Что-то у akuz-а руки дрожат. Везде по 3 ответа... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2003, 14:02 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
Насчет Workflow. А если в разных отделах помимо общих параметров есть еще и специфические для конкретного отдела. Как их лучше учесть: в других таблицах или эту Workflow расширить? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2003, 15:54 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
Akuz очень грамотно написал один из вариантов. Но конкретный ответ может быть дан только на конкретный вопрос. Volodja писал: А если в разных отделах помимо общих параметров есть еще и специфические для конкретного отдела. Как их лучше учесть: в других таблицах или эту Workflow расширить? Сложный вопрос. 1. Завести для каждого параметра свое поле. Плюс - легкость запросов. Минус - изменение числа параметров потребуют изменения сруктуры. 2. Вложить в единые параметры свои смыслы для каждого отдела. Возможно, придется делать таблу расшифровки эти смыслов. Допустим, для отдела "А" Парам1=0 значит "Нет возражений", а для отдела "Б" Парам1=0, значит "не могем". Но это скользкий путь. 3. Основной метод. К каждому отделу подцеплять таблу его параметров. База будет работать при любых изменениях параметров, но запросы буду сложнее. Что не должно останавливать настоящего Профи. Но тут такая штука. Именно из за нее поектирование баз - искусство. Если сервак начнет умирать, то возможно придется использовать пункты 1 и 2. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2003, 21:03 |
|
Как лучше организовать?
|
|||
---|---|---|---|
#18+
А если в разных отделах помимо общих параметров есть еще и специфические для конкретного отдела. Как их лучше учесть: в других таблицах или эту Workflow расширить? Здесь я полностью согласен с этим утверждением Cat2: Но конкретный ответ может быть дан только на конкретный вопрос. Всё зависит от Use Case-ов - вариантов использования. То есть, если специфические параметры просто хранятся и редко используются, то максимально нормализовать, т.е. вычленить общее и хранить в той же таблице, а все частности хранить в другой таблице типа: Параметры Отделов 1. Отдел 2. Тип 3. Значение Если важна простота использования и быстродействие, то можно пойти на денормализацию структуры. То есть хранить всё разнообразие параметров в той же таблице, а незначащие параметры забивать нулами. Главное исходить из того, что вам же потом с этой структурой придётся работать. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2003, 22:02 |
|
|
start [/forum/topic.php?all=1&fid=32&tid=1547003]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
172ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 290ms |
0 / 0 |