![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
![]()
Ребят, пора повышать уровень программирования, но т.к. я экономист - самому разобраться будет сложно в общем суть такая...
Нужна программа "Заказы", человек видит перед собой таблицу (TAdvStringGrid), к примеру, данные заполняются через Tedit (фамилия, имя, номер телефона, заказ). Таблицу сделать - проблем, конечно, нет. С типизированным файлом тоже нет проблем. Есть проблема в другом. Эта программа может находится на разных ПК в разных точках города, желательно записи хранить не в типизированном файле, а в какой-нибудь БД. Записи искать при помощи SQL - запросов. БД хочу защитить своими алгоритмами шифрования, CRC32 пока сложен для понимания. Программа, в принципе, простая, но подскажите вот что: какие компоненты использовать для того, чтоб если контрольная сумма БД, с которой (с БД) я тоже пока не умею работать, изменялась, то программа автоматически обновляла таблицу? Где хранить данные? Удобно ли иметь один файлик в облаке, или лучше чтоб каждая копия программа хранила данные в пк, а по закрытию добавляла записи? (думаю могут возникнуть при обращении к БД с другого ПК, т.е. на локальном диске-то запись будет, а вот другие ПК ее не увидят, т.к. файлик один будет, скорее всего...) Что почитать, есть ли какие - нибудь особенности работы с БД ? (В свое время разрабатывал БД на VFoxPro (запросы, формы, репорты, сущности и т.д.)) а вот с делфи БД (или как она там правильнее называется) - не знаком. ЖЕЛАТЕЛЬНО что-нибудь по сложнее, а не стандартные компоненты. ПЛАН: 1) подобрать хранилище, научится с ним работать программно 2) научиться разрабатывать БД в делфи, попробовать поиграться с Данными, выводя их в грид, 3) попрактиковаться в приеме - отправке запросов... Думаю вы бы так же делали. В общем жду ваших советов!)
from dark to light)
Последний раз редактировалось Алексей_2012; 14.03.2016 в 16:34. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 03.06.2015
Сообщений: 393
|
![]()
SQLite + шифрование
Бекенд в облаке со своим API на прием/отдачу Приложение обращается к серверу, синхронизирует по "какой-то" логике данные в локальном хранилище и показывает их тоже по "какой-то" логике Это всё в общем, т.к. таковы входящие данные в топике Конкретизируй немного инфу и можно углубляться в конкретику. Всякие TAdvStringGrid и TEdit и нафиг не нужны на данном этапе
Вы там держитесь.
|
![]() |
![]() |
![]() |
#3 | ||
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
![]() Цитата:
з.ы. бекенд - это что за зверь?О.о Цитата:
А, и еще, возможно ли на одном ПК имитировать работу с разных (с двумя копиями программы)? В голову пришла только Доп. ОС на виртуальной машине, но это слишком по-Челябински ![]()
from dark to light)
|
||
![]() |
![]() |
![]() |
#4 | |||
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]() Цитата:
1. фронт-энд 2. бэк-энд 3. хранилище данных Хранилище данных содержит данные, может быть представленно чем угодно. Бэкэнд управляет бизнес-логикой (обработка и управление данными, т.е. какие-то внутренние процессы, подготовка к вихуализации данных и т.д.), управляет их расположением в хранилище. Фронтэнд это пользовательский интерфейс, визуализация бизнес-логики если хотите, его может не быть вообще. Потому программы с участием СУБД надо начинать проектировать не с фронта, а с самой сути того, что же будет хранится в таблицах и каким образом: таблицы документов, справочников, размерности полей данных и т.д., всяческие внутренние механизмы БД можно подключить, и уже апосля можно наворачивать на БД бизнес-логику и фронтэнд, при том так, что фронту будет до едрени фени то, как и где лежат данные, т.к. этим управляет бэк. Ну вы поняли. Цитата:
Ваша задача защитить базу, выставив на уровне БД уровни доступа к опред. таблицам. Теперь про программу: Вам нужно несколько таблиц как минимум: 1. Клиенты - имя, фамилия, отчество, теленфон, id клиента 2. Товары - название, номер, и т.д. и т.п. и id поставщика, id товара 3. Поставщики товаров - организация и т.д. т.п. и номер в системе 4. Заказы - содержит id клиента, id товара, id статуса, дату и время заказа и прочую инфу о сущности "заказ" которую нельзя отнести в таблицу клиента или заказа 5. справочник статусов заказа - id, название, описание и уже на основе этого можно извращаться с интефрейсом. Я бы не использовал GRID'ы а сразу чистый SQL, а данными бы манипулировал в любом удобном компненте. Гриды не гибгие, хотя не все видел ![]() SQLite отметайте сразу, иначе получится так, что у каждого пользователя будет собственная БД. А вам надо многользовательское приложение с единым хранилищем данных. Доступ к базе: Прямой коннект к БД, при условии, что логин и пароль пользователя это доступ к базе, и на уровне базы залочен на опред. действия с опред. таблицами. Можно придумать что-то с crc32 для логина и md5 для пароля с солькой. Ставьте себе OpenServer запускайте его на СУБД mySQL, PostgreeSQL, MariDB или иным другим и играйтесь с базой. Не надо мороится, что за ас уже там настроили. Цитата:
Последний раз редактировалось Человек_Борща; 14.03.2016 в 17:26. |
|||
![]() |
![]() |
![]() |
#5 | ||||
Форумчанин
Регистрация: 03.06.2015
Сообщений: 393
|
![]() Цитата:
Я бы делал так на примере тех же заказов: Первый запуск программы - полное обновление (или не полное, опять же в зависимости от логики программы) Очередной запуск - частичное обновление (в зависимости от того, что изменилось с последнего обновления. Пихай в таблицу поле LastUpdateTime и выгребай по нему все записи, которые изменились с последней синхронизации) "Онлайн" работа программы - динамическое обновление данных (ну тут уже или по таймеру, что есть "фу-фу-фу" или же нормальные PUSH-уведомления) Цитата:
Цитата:
как-то так http://www.wikireality.ru/wiki/%D0%9...B5%D0%BD%D0%B4 Цитата:
Ня, почитай https://ru.wikipedia.org/wiki/%D0%9C...BF%D0%BA%D0%B0 (можешь забить после прочтения) Да хоть 10 разных иммитаций, ни разу что ли не запускал копию ехе с другой папки?)
Вы там держитесь.
Последний раз редактировалось TaLadno; 14.03.2016 в 17:38. |
||||
![]() |
![]() |
![]() |
#6 | |||
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]() Цитата:
Цитата:
Проблема в другом, шифруемую SQLite надо компилировать самому, а хорошо шифруемая SQLite стоит денег, но оно того стоит. А Firebird не имеет шифрования на сколько помню. Цитата:
|
|||
![]() |
![]() |
![]() |
#7 | |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,926
|
![]() Цитата:
![]() 2 Алексей_2012, "для на всякий случай", CRC8/16/32 ни разу не имеют отношения к какому-либо шифрованию ![]() P.S. "Для на всякий случай 2", MD5 тоже не имеет никакого отношения к шифрованию. Последний раз редактировалось northener; 15.03.2016 в 00:53. |
|
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]() Цитата:
ТС начните изучение написания ПО для СУБД с чтения книги по какой-либо СУБД. Книгу берите по любой реляционной, в той части которую вы даже на 100% не задействуете, и которую вам надо изучить, все существующие СУБД более чем похожи. Остальное уже ньюансы конкретных реализаций и какими-то крутыми возможностями у конкретных СУБД (например у оракла есть свои крутые фичи, а у Postgre свои). Ну и насчет открытой шифровнной SQLite скау что есть некое ПО, которое эту самую БД может расшифровывать. |
|
![]() |
![]() |
![]() |
#9 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,926
|
![]()
[QUOTE=Человек_Борща;1587009], он через CRC32 хотел пониимать, изменилась ли БД в облаке./QUOTE]
Не уверен. |
![]() |
![]() |
![]() |
#10 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
![]()
да, через контрольные суммы хотел это сделать, попутал CRC32 с шифрованием
![]()
from dark to light)
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Клиент-серверная игра Змейка | Anny_Apple | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 4 | 13.03.2014 01:24 |
Клиент-серверная БД в Delphi | jediAlex | БД в Delphi | 1 | 15.10.2009 00:16 |