|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.11.2012, 14:22 | #1 |
Новичок
Джуниор
Регистрация: 19.11.2012
Сообщений: 2
|
Как правильно создать БД
Здраствуйте. Как написать БД так чтобы стыдно не было исходники показывать другим. Раньше я БД писал только для курсачей (C# + MS SQL или PostgreSql) и весь код и sql запросы писал внутри кнопок , все раболтало на ура и все было хорошо.Вобщем решил на фрилансе заработать итеперь мне надо написать такую БД которую реально будут использовать на одном из преприятий и надо чтобы она была "Как у людей" . Подскажите пожалуйста как организовать мою программу правильным образом. В инете прочел что есть шаблоны проектирования но они походу слишком сложны и предназначены для больших информационных систем а уменя БД небольшая будет (Отдел кадров и Склад).
Сейчас думаю сделать так: Создать по классу на каждую таблицу БД и еще пару классов для работы с Connet - ом и пихнуть все в namspace DBManagment и подключить этот namespace к проекту. Но тут возникает много проблем как например невозможно выполнить транзакции при таком подходе. Подскажите плиз как правильно все это сделать. Спасибо. |
19.11.2012, 14:49 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Это зависит от конкретной задачи. Никакие паттерны тебе не помогут написать читабельно и оптимально, пока задача не будет четко поставлена. Под каждую задачу своя стратегия - к примеру где-то удобно применять вьюшки, а где-то функции, возвращающие таблицы. Или где-то удобно создавать временные таблицы для участия в запросах которые в цикле, а где-то достаточно рекурсивных запросов.
I'm learning to live...
|
19.11.2012, 16:08 | #3 |
Новичок
Джуниор
Регистрация: 19.11.2012
Сообщений: 2
|
Спасибо что ответили Stilet. Решил использовать трехзвенку:
Вид -> БизнесЛогика -> БД Конечно это все новое для меня но буду разбираться. Бизнес логика будут представлять из себя набор классов для работы с БД - там будет по одному классу на каждую таблицу БД и пару служебных классов (типа DBConnector). Как думаете прокатит такое? Напр. Класс инкапсулирующий таблицу Customers: Методы: DataRow GetCustomeById(int CustId); DataTable GetAllCustomers(); String GetCustomrName(int CustId); ...И так далее для все[ полей - помоему получится примерно 16 методов (выборка,вставка,удаление,обновлени е) на таблицу... Вид будет представлять из себя форму Windows Forms и никаких прямых запросов к БД не сможет давать - только через классы из бизнес слоя. Напр: Customer customer = new Customer(); String CustomerName = customer.GetName(1);//имя первого заказчика БД - здесь будет сама база данных без каких либо тригеров и встроенных процедур. БД будет хранть инфу и все. Единственное что она будет делать это каскадное удаление связанных записей. БД будет храниться на отдельном компе. Вобщем получаеться так: 20% логики в вид слое, 70% в бизнес логике и 10% в БД. Поскажите пожалуйста я правильно спроектировал ? Или как то иначе это делают? |
19.11.2012, 16:34 | #4 | |||||||
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Цитата:
Трёхзвенка - это БД -> Сервер -> Клиент. Тут же просто деление на слои и их может быть хоть 5. Я бы не заморачивался. В корпоративе не меньший колхоз, чем в универах. Потому что в универах не учат правильно писать программы. Цитата:
Бизнес-логика - это те операции, которые есть в решаемой вами задаче. Например, в карточной игре бизнес-логика может содержать операцию "Перетасовать колоду". В какой-то "продажной" программе может быть расчет скидки. Классы для работы с БД - это DAL (Data Access Layer) и он отдельно от бизнес-логики и желательно им вообще не пересекаться. Для организации доступа к БД смотрите в сторону ORM, всяких Linq2sql и подобным готовым библиотекам. Если в программе 5 таблиц, а задание уже нужно выполнять и срок идёт, то я бы вообще не заморачивался и делал как умею. Цитата:
Цитата:
Цитата:
В БД нет никакой логики, значит её нужно защитить от постороннего вмешательства, иначе появятся люди с пустым ФИО или без ярко выраженного пола. Цитата:
Цитата:
Делайте как умеете и совершенствуйтесь исходя из новой информации. Не нужно копировать все эти глупости из книжек с искусственными примерами. |
|||||||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
DB Access - как правильно создать бд и связать таблицы? | XerSon | БД в Delphi | 5 | 19.04.2011 11:41 |
Как правильно создать таблицу. | matrixphp | SQL, базы данных | 4 | 05.03.2011 18:28 |
C++,есть код,как правильно создать очередь? | Aleksandr_Yanov | Помощь студентам | 0 | 19.08.2010 14:22 |
как правильно создать html запрос | miki131 | PHP | 4 | 25.11.2009 15:53 |
Как создать правильно запрос .... | EugeneIsmatulin | SQL, базы данных | 15 | 28.05.2009 09:20 |