powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Сущность для хранения данных. Какаю выбрать? Record, Object ... ?
21 сообщений из 21, страница 1 из 1
Сущность для хранения данных. Какаю выбрать? Record, Object ... ?
    #39715904
OxY63rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую!
Имеется клиент-серверное приложение - чат. Обмен происходит строками, в которых присутствуют специальные разделители, определяющие части. В этих частях содержатся нужные сведения о типе сообщения, отправитель, получатель и т.п. Каждое такое сообщение, а именно строка при обработке разбивается и обрабатывается. При накручивании функционала, появляется необходимость добавления новых полей и др. Поэтому возникла необходимость предусмотреть масштабируемость схемы вцелом.
Планирую создать нЕчто, хранящее необходимые сведения, к которым можно будет обращаться по имени типа
Something.TypeID
Something.Items[5].Username
Something.Items[5].Nickname
Полагаю, что если Record может содержать строки только заранее определенные в длине, то это не пойдет.
В связи с этим вопрос - какую сущность выбрать? Object?
...
Рейтинг: 0 / 0
Сущность для хранения данных. Какаю выбрать? Record, Object ... ?
    #39715905
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давно уже придумано -- формат называется JSON. В делфи он есть из коробки, либо куча отличных бесплатных компонентов. Причем с ним еще и в самой делфи легко работать.
...
Рейтинг: 0 / 0
Сущность для хранения данных. Какаю выбрать? Record, Object ... ?
    #39715906
OxY63rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JaDi, спасибо за совет. Организовано всё в Delphi 7. Надеюсь, не будет проблем.
...
Рейтинг: 0 / 0
Сущность для хранения данных. Какаю выбрать? Record, Object ... ?
    #39715909
zinpub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А при чём здесь JSON? Для обмена - да подойдёт.

А вопрос(я так понял) про оперативное хранение. Тогда да Объект и в TList его... Либо если действий с объектом не предусмотрено то и рекорда хватит
...
Рейтинг: 0 / 0
Сущность для хранения данных. Какаю выбрать? Record, Object ... ?
    #39715912
zinpub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И record может содержать строки любой длины(точнее ссылки на них)
...
Рейтинг: 0 / 0
Сущность для хранения данных. Какаю выбрать? Record, Object ... ?
    #39715916
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OxY63rusВ связи с этим вопрос - какую сущность выбрать? Object?
Да.
Надо сделать так:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
type
 TUserInfo  = class
   property UserName:string;
   property NickName:string;
   function IsMemberOf(GroupID:Integer):Boolean;
   ....
  end;


OxY63rusПланирую создать нЕчто, хранящее необходимые сведения, к которым можно будет обращаться по имени типа

Код: pascal
1.
2.
3.
4.
 TUserHolder = class TDictionary<string,TUserInfo>
   function FindUser(const UserID:string):TUserInfo
   ...
 end;  



Далее, может сериализовывать это в Json и из него.
...
Рейтинг: 0 / 0
Сущность для хранения данных. Какаю выбрать? Record, Object ... ?
    #39715918
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B,

авторdelphi 7
автор TUserHolder = class TDictionary<string,TUserInfo>
...
Рейтинг: 0 / 0
Сущность для хранения данных. Какаю выбрать? Record, Object ... ?
    #39715923
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OxY63rusИмеется клиент-серверное приложение - чат. Сервер с базой данных или полностью самописный?

OxY63rusПри накручивании функционала, появляется необходимость добавления новых полей и др. Поэтому возникла необходимость предусмотреть масштабируемость схемы вцелом.Масштабируемости велосипедом сразу достичь трудно. Хотя потом, вероятно, специализированный велосипед сможет стать лучше. Когда размер данных достигнет терабайтов.

OxY63rusВ связи с этим вопрос - какую сущность выбрать? Object?
sqlite
Он умеет хранить данные в памяти, а не только на диске в файле.
...
Рейтинг: 0 / 0
Сущность для хранения данных. Какаю выбрать? Record, Object ... ?
    #39715924
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторdelphi 7
Скачать бесплатные Delphi Community Edition

JaDi,

Иначе TDictionary надо будет переводить на её аналог в D7 - TList / TStringList / TObjectList.
Только головной боли больше в разы.
...
Рейтинг: 0 / 0
Сущность для хранения данных. Какаю выбрать? Record, Object ... ?
    #39715933
zinpub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valery_B,

THashedStringList, хотя ну не over 100500 пользователей же там
...
Рейтинг: 0 / 0
Сущность для хранения данных. Какаю выбрать? Record, Object ... ?
    #39716060
OxY63rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья, спасибо, что накидали идей. Valery_B, скорее всего пойду через создание класса, т.к. легче для восприятия.

P.S. да клиент-сервер самописные на дельфийских ClientSocket и ServerSocket. бд не использую
...
Рейтинг: 0 / 0
Сущность для хранения данных. Какаю выбрать? Record, Object ... ?
    #39716085
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OxY63rus...появляется необходимость добавления новых полей и др. Поэтому возникла необходимость предусмотреть масштабируемость схемы вцелом.
Планирую создать нЕчто, хранящее необходимые сведения, к которым можно будет обращаться по имени типа
Something.TypeID
Something.Items[5].Username
Something.Items[5].Nickname
Полагаю, что если Record может содержать строки только заранее определенные в длине, то это не пойдет.
В связи с этим вопрос - какую сущность выбрать? Object?

Используй СУБД. Например: SQLite, FireBird embedded.
...
Рейтинг: 0 / 0
Сущность для хранения данных. Какаю выбрать? Record, Object ... ?
    #39716164
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КотовасияИспользуй СУБД. Например: SQLite, FireBird embedded.
Да нет, сразу Oracle enterprise, чего уж мелочиться-то!
...
Рейтинг: 0 / 0
Сущность для хранения данных. Какаю выбрать? Record, Object ... ?
    #39716193
OxY63rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Котовасия, хранящее не в смысле долгосрочного периода, а в смысле несущее в себе на данный момент времени. Ничего хранить не надо. Строка улетала, кому-то прилетела. Её надо обработать и забыть. Конечно базу данных разворачивать не буду
...
Рейтинг: 0 / 0
Сущность для хранения данных. Какаю выбрать? Record, Object ... ?
    #39716198
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OxY63rusКотовасия, хранящее не в смысле долгосрочного периода, а в смысле несущее в себе на данный момент времени. Ничего хранить не надо. Строка улетала, кому-то прилетела. Её надо обработать и забыть. Конечно базу данных разворачивать не буду
"Хранить не надо, передавать не надо".
И зачем тебе обращаться "по имени типа" в рантайме? Пусть "имя типа" в компайлтайме живет.
...
Рейтинг: 0 / 0
Сущность для хранения данных. Какаю выбрать? Record, Object ... ?
    #39716201
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2КотовасияИспользуй СУБД. Например: SQLite, FireBird embedded.
Да нет, сразу Oracle enterprise, чего уж мелочиться-то!Hadoop!
...
Рейтинг: 0 / 0
Сущность для хранения данных. Какаю выбрать? Record, Object ... ?
    #39716207
Фотография Dimonka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Альтернатива JSON - суровый XML с XPATH-ом и дамами лёгкого поведения.
...
Рейтинг: 0 / 0
Сущность для хранения данных. Какаю выбрать? Record, Object ... ?
    #39716239
Tactical Nuclear Penguin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimonkaАльтернатива JSON - суровый XML с XPATH-ом и дамами лёгкого поведения.

нечего тут
сказали хадуп, значит хадуп!
...
Рейтинг: 0 / 0
Сущность для хранения данных. Какаю выбрать? Record, Object ... ?
    #39716248
OxY63rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Котовасия"Хранить не надо, передавать не надо".
И зачем тебе обращаться "по имени типа" в рантайме? Пусть "имя типа" в компайлтайме живет.
Обработать имел в виду строку раскидать по полям своего класса. И ориентироваться на их имена, а не на индексы строковых массивов при обработке строки. Тот ещё говонокод
...
Рейтинг: 0 / 0
Сущность для хранения данных. Какаю выбрать? Record, Object ... ?
    #39716250
Олег Третьяков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять народ велосипеды изобретает.
OxY63rus, ORM. Mormot к примеру. Масштабируется достаточно легко, упаковывает в JSON, шифрование, обмен через http(s), REST, авторизация, сам хостится и слушает указанный порт, держит кучу БД, еще поддерживается для D7(не точно) и т.д. Остается только описать модель и скормить это дело DB-серверу, а сам DB-сервер скормить http-серверу. На стороне клиента скормить модель http-клиенту. Останется только расставить CRUD-операции в нужных местах.
...
Рейтинг: 0 / 0
Сущность для хранения данных. Какаю выбрать? Record, Object ... ?
    #39716256
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OxY63rusКотовасия"Хранить не надо, передавать не надо".
И зачем тебе обращаться "по имени типа" в рантайме? Пусть "имя типа" в компайлтайме живет.
Обработать имел в виду строку раскидать по полям своего класса. И ориентироваться на их имена, а не на индексы строковых массивов при обработке строки...

Если у тебя формат уже задан - в чем вопрос?
OxY63rus...Обмен происходит строками, в которых присутствуют специальные разделители , определяющие части...
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Сущность для хранения данных. Какаю выбрать? Record, Object ... ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]