Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Подскажите со структурой базы.


Автор: DYUMON 29.9.2011, 18:42
Доброго времени суток пишущая братия.  Вот решил создать базу данных торговую но есть несколько моментов. Так как раньше с подобным не сталкивался то решил посоветоваться с теми у кого больше опыта.
   1. Управление доступами пользователей.  Будет несколько уровней доступа.   соответственно хотел бы узнать на каком уровне лучше      разграничить доступы. на добавление исправления удаление просмотр отчетов и тд.  
    >> я думаю создать тригер который будет следить за тем какой пользователь посылает команды и в зависимости от прав или выполлнять их либо же запиливать ему дверь.
  2.  Хранение документов  в самой базе. вроде заявок  приходов расходов и тому подобного. 
   >> либо делать одну большую таблицу в  которую  будут добавлятся строки с кодом товара номер дока по которому набивается документ тем кто набивал датой временем. либо же в таблицу загонять  дату время номер документа и в blob поле полностью содержимое заявки. 
собственно пока это моя основная головная боль . так как не хочется делать велосипед и спотыкатся по граблям. 
Подскажите что можете. 

Автор: Frees 29.9.2011, 19:23
Цитата(DYUMON @  29.9.2011,  21:42 Найти цитируемый пост)
 1. Управление доступами пользователей.  Будет несколько уровней доступа.   соответственно хотел бы узнать на каком уровне лучше      разграничить доступы. на добавление исправления удаление просмотр отчетов и тд.      >> я думаю создать тригер который будет следить за тем какой пользователь посылает команды и в зависимости от прав или выполлнять их либо же запиливать ему дверь.

можно воспользоваться разделением прав в самой СУБД
или можно разграничивать права непосредственно в клиентском приложении


Цитата(DYUMON @  29.9.2011,  21:42 Найти цитируемый пост)
  2.  Хранение документов  в самой базе. вроде заявок  приходов расходов и тому подобного.    >> либо делать одну большую таблицу в  которую  будут добавлятся строки с кодом товара номер дока по которому набивается документ тем кто набивал датой временем. либо же в таблицу загонять  дату время номер документа и в blob поле


у документа есть 2 части шапка и табличная часть, шапка - это дата контрагент, а табличная это список товаров...
соответственно делаешь 2 таблицы для шапки и товаров.

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

Автор: DYUMON 29.9.2011, 19:54
во  smile  спсибо

Добавлено через 14 минут и 19 секунд
кстати про субд. я хочу использовать SQLite/ небольшой опыт для мелких баз был.

Автор: Frees 29.9.2011, 20:16
Цитата(DYUMON @  29.9.2011,  22:54 Найти цитируемый пост)
SQLite/ небольшой опыт для мелких баз был.

развивать прогу будет сложнее.. как например на сетевой вариант переходить, если это конечно рабочий проект....

Добавлено @ 20:20
еще в SQLite проблема была с русским а точнее с поискам по кирилице... подробностей не помню))

Автор: DYUMON 29.9.2011, 20:28
проблемму с русский я решил . вот не сетевая это да. но ведь и 1с 7.7 версии тоже вроде не сетевая? я делаю не для большой конторы а для мелкой компом на 10 так думаю sqlite вполне ограничусь.

Автор: Frees 30.9.2011, 06:14
Цитата(DYUMON @  29.9.2011,  23:28 Найти цитируемый пост)
 я делаю не для большой конторы а для мелкой компом на 10 так думаю sqlite вполне ограничусь.

а эти 10 компов захотят вести 1 БД, и все приплыли

Автор: DYUMON 30.9.2011, 08:22
впринципе sqlite обеспечивает одновременный доступ к файлу базы для нескольких пользователей.  можно использовть при работе до 10  пользоватлей. но мне для начало надо сделать рабочий прототип. а потом уже исходя из результатов буду смотреть  делать ли клиет сервер.

Автор: Frees 30.9.2011, 08:32
Цитата(DYUMON @  30.9.2011,  11:22 Найти цитируемый пост)
впринципе sqlite обеспечивает одновременный доступ к файлу базы для нескольких пользователей.

sqlite не для этого задумывался, я бы не рассчитывал на эту возможность...

Цитата(DYUMON @  30.9.2011,  11:22 Найти цитируемый пост)
ля начало надо сделать рабочий прототип. а потом уже исходя из результатов буду смотреть  делать ли клиет сервер.

тогда надо использовать компоненты доступа поддерживающие смену сервера, ADO например или если нужен прямой доступ то 
AnyDac ZeosLib

PostgreSQL, Firebird, ... рассматривал? у них кстати есть Embedded  версии, т.е весь сервер это несколько dll рядом с программой

Автор: DYUMON 30.9.2011, 19:41
есть реализация sqlite в виде odbc драйвера. посмотрю чего там. сделали прогу  одной таблицей засунул в расшареную папку и подцепился с 10 компов. в принципе можно работать.

Автор: Frees 30.9.2011, 20:05
Цитата(DYUMON @  30.9.2011,  22:41 Найти цитируемый пост)
есть реализация sqlite в виде odbc драйвера. посмотрю чего там. сделали прогу  одной таблицей засунул в расшареную папку и подцепился с 10 компов. в принципе можно работать.

читать наверняка проблем не будет, а если update сделают 2 клиента одновременно да еще и одной и тойже таблицы да и в придачу одной и тойже записи....


Цитата(DYUMON @  30.9.2011,  22:41 Найти цитируемый пост)
odbc 

и использовать bde? он еще жив?


PS Решать тебе..
PPS выбор СУБД это отдельная тема. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)