powered by simpleCommunicator - 2.0.28     © 2024 Programmizd 02
Map
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / База данных в текстовом файле
25 сообщений из 56, страница 1 из 3
База данных в текстовом файле
    #39882495
palladin600
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

я натолкнулся на одну мысль, и хотел бы спросить людей, возможно, сталкивающихся с подобным вопросом. А именно, вопрос касается хранения данных обычном текстовом файле.
Предположим, нужно сделать БД для некоего бакалейного отдела. Здесь товары которые не нужно делить на какие-то особые свойства, а достаточно хранить обобщающие записи: Сахар-песок ; Сахар рафинад ; Гречневая крупа ; Гречневая крупа II сорт ; и т.д.

не заводить же для этого таблицу под каждую категорию. И в итоге, я наткнулся на один совет на стаковерфлоу:
SoftaТо, что Вы описали, это самое обычное решение данной задачи с точки зрения реляционных баз данных.
Но оно, на мой взгляд, избыточно.
Я Вам больше скажу - для этого вообще база данных не нужна. Недавно сталкивались с сходной проблемой. Думали-думали какая БД, какая структура.
А потом прекратили думать и посчитали: несколько тысяч товаров, описание свойств каждого занимает сколько-то там (уже не помню) байт в среднем. И в целом все наши описания свойств (аналог вашей таблицы prod_attributes) товаров укладываются в менее чем в 200 килобайт.

Мыслим дальше: данные меняются крайне редко, изоляции транзакций не нужно, данные используются крайне часто (по сути - это самая востребованная информация для сайта интернет-магазина).
Данные можно организовать в виде удобной для конкретного языка программирования структуры (массив, список, кортеж, список списков и пр. и пр.) и займет это совсем немного места (ну что для современных серверов сотни килобайт оперативной памяти).

Реализовали такую систему: при загрузке веб-приложения с диска из обычного текстового файла считываются свойства товаров и помещаются в оперативную память в виде удобной для дальнейшей работы структуры.

При обновлении свойств (которое происходит раз в сутки) дергается специальный URI и происходит повторное чтение файла с данными и перезаполнение этой структуры.

Повторяю: база данных для данной задачи вообще не нужна.
BethrezenА как же фильтрация?
Alex78191С помощью LINQ или Stream API.

Так вот вопрос, вы бы как поступили? Делали ли бы, однозначно, всё на реляционках, или рассмотрели бы идею с плоским файлом?
...
Рейтинг: 0 / 0
База данных в текстовом файле
    #39882498
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я делал текстовые файлы. Но современные программисты не потянут: код писать придётся.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
База данных в текстовом файле
    #39882502
palladin600
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, скажите, а что имеется в виду, когда там говорится про то, что дёргается специальный uri ?
т.е. предположим на сервере лежит текстовый файл, при загрузке сайта он закачивается в ОЗУ на клиенте (или нет)?
в это время, на сервере, происходит обновление данных в основном файле, то клиенту как сообщить, что нужно переписать его клиентский ОЗУ?

что тут именно подрузамевалось, под этим uri ?
...
Рейтинг: 0 / 0
База данных в текстовом файле
    #39882503
palladin600
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или всё же, вся работа с файлом ведётся на бекенде, также как и с бд?
...
Рейтинг: 0 / 0
База данных в текстовом файле
    #39882524
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя другая задача, локальная, ничего этого не нужно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
База данных в текстовом файле
    #39882536
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
palladin600Так вот вопрос, вы бы как поступили? Делали ли бы, однозначно, всё на реляционках, или рассмотрели бы идею с плоским файлом?

Ну есть "ни два, ни полтора" - dbf-файлы.
Т.е. это реляционнка, но вместе с тем плоские файлы. :-)
...
Рейтинг: 0 / 0
База данных в текстовом файле
    #39882549
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
palladin600,

в высказанной мысли затронуты только технические аспекты. Т.е. если это создаётся для себя, одной парой рук в ввиде сэмпла - ну да, имеет место быть. Или скажем для МК где данные грузятся-храняться-обрабатываются на MicroSD(к примеру). В Ваших рассуждениях есть "стоп слова" - "некий бакалейный отдел", "товары" и сам вектор задачи (насколько я понял из описания) - для заказчика, программа, есть присутствие учёта...

надеюсь общий вектор мысли изложил...

ну или с другой стороны... Если Вам хочется упростить - "начните с себя", уберите из переменных Вашу программу. Попытайтесь решить стандартными средствами офиса(к примеру)... оно как раз в стиле самописных текстовых ведосипедиков, с "идеально круглыми" колёсами...

(круглый)
...
Рейтинг: 0 / 0
База данных в текстовом файле
    #39882578
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно, а вот нафига этот мазохизм?
4Не, ну я использую текстовые файлы. Например, "дальние филиалы" готовят исходные данные в автономном приложении, а потом присылают результат в зазипованном json - файле. Данных - относительно мало (десятки тысяч позиций константных справочников плюс несколько сотен записей самих данных), и то приложение стартует секунд пять. То есть, для больших объемов не годится.
Сделано так было, с одной стороны ради простоты - один икзешник плюс один файл данных, чтобы любой строитель смог разобраться. А с другой стороны - ради прикола, просто "попробовать сделать так".
Ничто не мешало использовать, например, SQLite или FireBird Embedded.
...Хотя, наверное, раз я не занимался парсингом текстового файла руками, а использовал готовую библиотеку - то не считается.
...
Рейтинг: 0 / 0
База данных в текстовом файле
    #39882602
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЯ делал текстовые файлы. Но современные программисты не потянут: код писать придётся.
да потянут, дорого только настройка выйдет - давно этим никто не занимается.
Занятно, что все эти очевидности промелькивают потом на блоках гигантов как ноухау
Хотя вся теория уже давно есть, просто ей никто не пользуется

palladin600что тут именно подрузамевалось, под этим uri ?
обычный запрос, обработчик которого перезагружает "базу" с диска
...
Рейтинг: 0 / 0
База данных в текстовом файле
    #39882603
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёИнтересно, а вот нафига этот мазохизм?
4Не, ну я использую текстовые файлы. Например, "дальние филиалы" готовят исходные данные в автономном приложении, а потом присылают результат в зазипованном json - файле. Данных - относительно мало (десятки тысяч позиций константных справочников плюс несколько сотен записей самих данных), и то приложение стартует секунд пять. То есть, для больших объемов не годится.
Сделано так было, с одной стороны ради простоты - один икзешник плюс один файл данных, чтобы любой строитель смог разобраться. А с другой стороны - ради прикола, просто "попробовать сделать так".
Ничто не мешало использовать, например, SQLite или FireBird Embedded.
...Хотя, наверное, раз я не занимался парсингом текстового файла руками, а использовал готовую библиотеку - то не считается.SQLite делает тож самое, за что его и любят пихать во все дыры
...
Рейтинг: 0 / 0
База данных в текстовом файле
    #39882608
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)ёёёёёИнтересно, а вот нафига этот мазохизм?
4Не, ну я использую текстовые файлы. Например, "дальние филиалы" готовят исходные данные в автономном приложении, а потом присылают результат в зазипованном json - файле. Данных - относительно мало (десятки тысяч позиций константных справочников плюс несколько сотен записей самих данных), и то приложение стартует секунд пять. То есть, для больших объемов не годится.
Сделано так было, с одной стороны ради простоты - один икзешник плюс один файл данных, чтобы любой строитель смог разобраться. А с другой стороны - ради прикола, просто "попробовать сделать так".
Ничто не мешало использовать, например, SQLite или FireBird Embedded.
...Хотя, наверное, раз я не занимался парсингом текстового файла руками, а использовал готовую библиотеку - то не считается.SQLite делает тож самое, за что его и любят пихать во все дыры

Не, json в данном случае был хорош как результат сериализации объекта хранения. Для гридов от DevExpress был написан наследник TcxCustomDataSource, которого обучили [де]сериализоваться... работа была завершена за пять минут, поэтому больше ничего не рассматривали. Ну, сам json еще зиповали, и всё.
...
Рейтинг: 0 / 0
База данных в текстовом файле
    #39882613
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

ну видишь, это ж не каждый может осилить, а базу перегнать и поменять источник куда проще выглядит, SQLite за это и любят
...
Рейтинг: 0 / 0
База данных в текстовом файле
    #39882618
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)ёёёёё,

ну видишь, это ж не каждый может осилить, а базу перегнать и поменять источник куда проще выглядит, SQLite за это и любят
Как раз наоборот, сериализация в json доступна практически изо всех ЯП, пара строк и всё, а по табличкам придется скорее всего руками раскидывать, да еще эти таблички создать надо. Но я в целом - за СУБД, а для переноса - json.
...
Рейтинг: 0 / 0
База данных в текстовом файле
    #39882626
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Delphi, например, есть ClientDataSet.
Можно создать его, добавить столбцы разного типа, потом заполнять данные, и сохранять/читать в xml.
Кроме того, любые изменения этого "файла" можно оформлять в виде "пакета", который можно передавать куда-то, например, на другую копию такого же файла (briefcase model).
Так что да, тут база данных не нужна, даже sqlite.
...
Рейтинг: 0 / 0
База данных в текстовом файле
    #39882628
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

TClientDataSet - ничего хорошего, ибо одна плоская табличка, уж лучше SQLite.

А json - и вложенные структуры, и связанные, и поиск разного рода.
...
Рейтинг: 0 / 0
База данных в текстовом файле
    #39882664
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёkdv,

TClientDataSet - ничего хорошего, ибо одна плоская табличка, уж лучше SQLite.

А json - и вложенные структуры, и связанные, и поиск разного рода.вот честно, положа ...
сколько у вас процент программистов, которые могут написать банальный бинарный поиск?
...
Рейтинг: 0 / 0
База данных в текстовом файле
    #39882666
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan),

думаю, что 100%.

А зачем, в данном конкретном случае?
...
Рейтинг: 0 / 0
База данных в текстовом файле
    #39882670
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,
а без ошибок :-)?
ёёёёёkdv,

TClientDataSet - ничего хорошего, ибо одна плоская табличка, уж лучше SQLite.

А json - и вложенные структуры, и связанные, и поиск разного рода.я просто в большинстве контор такого не видел (имею ввиду 100% все смогут), и я понимаю архитектора, который говорит: "фигач таблицы"
...
Рейтинг: 0 / 0
База данных в текстовом файле
    #39882712
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
palladin600Добрый день!

я натолкнулся на одну мысль, и хотел бы спросить людей, возможно, сталкивающихся с подобным вопросом. А именно, вопрос касается хранения данных обычном текстовом файле.
Предположим, нужно сделать БД для некоего бакалейного отдела. Здесь товары которые не нужно делить на какие-то особые свойства, а достаточно хранить обобщающие записи: Сахар-песок ; Сахар рафинад ; Гречневая крупа ;

Да. Исторически базы данных эволюционировали из текстовых файлов. Обычно - структурированных где каждая
запись по длине равна предыдущей. Наподобие DBase/FoxPro. Некоторые хитрецы умудрялись отрезав заголовок
dbf парсить такой файл как CSV. Ну не совсем СSV а с padding.

Если вы делаете БД для бакалейного отдела для тестирования - тогда может быть взлетит. У вас БД не меняется
а табличка только 1 раз читается с головы в хвост. Есть специальные JDBC-драйверы которые адаптируют текстовый
файл к такой одно-табличной базе.

Но радость закончится когда вы начнёте использовать такой файл для активных транзакций. обновлять.
Удалять и вставлять записи в такой БД. Чем толще такой файлик -
тем медленнее идет транзакция. Более того. Если в момент переписи старого файла выключат свет - то ваша система
провиснет в некой сингулярности. Старый файл БД уже удалён. А новый еще не создан. Как поведёт себе ваша система
после включения питания - бох его знает. Но такую архитеутуру нельзя признать удачной. И никто не гарантирует
что все бакалейные товары выживут.

Обычно все классические СУБД нормально переживают выключение POWER. С их точки зрения все состояния таблиц будут "откачены"
в предыдущее устойчивое состояние. Тоесть все транзакции что были не финализировані commit-ом исчезнут из истории.
Это малая потеря. По сравнению с потерей все базы.
...
Рейтинг: 0 / 0
База данных в текстовом файле
    #39882718
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЕсли в момент переписи старого файла выключат свет - то ваша система
провиснет в некой сингулярности. Старый файл БД уже удалён. А новый еще не создан.

Поэтому я и говорю: программировать надо. Писать в другой файл, переименовывать только
после успешной записи. Не потянет аффтар.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
База данных в текстовом файле
    #39882722
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да. Такая практика есть в текстовых редакторах. Юниксовые тулзы пытаются обеспечить атомарность так.
Но что будет если 2 конкурирующие обновлялки прилетели. Что будет? Потерянное обновление для одной из транзакций.
...
Рейтинг: 0 / 0
База данных в текстовом файле
    #39882727
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНо что будет если 2 конкурирующие обновлялки прилетели.

Это для однопользовательских систем. Никакой конкуренции по определению.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
База данных в текстовом файле
    #39882734
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovmaytonНо что будет если 2 конкурирующие обновлялки прилетели.

Это для однопользовательских систем. Никакой конкуренции по определению.

Я-бы различал однопользовательскую и однопоточную. Тот еще ребус. Думаю даже спрашивать не стоит.
Никакие requirements не формализованы. И от этого можно кодить как бох даст. Сахар песок еще
не набрал столько чести. Мдя.
...
Рейтинг: 0 / 0
База данных в текстовом файле
    #39882755
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
palladin600хранения данных обычном текстовом файле.


В 90-х была прога "Турбо -Бухгалтер"
Они вместо привычного тогда DBF применяли именно такой метод.
...
Рейтинг: 0 / 0
База данных в текстовом файле
    #39882796
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЯ-бы различал однопользовательскую и однопоточную.

А смысл? Многопоточный случай лёгким движением руки превращается в однопоточный жёсткой
сериализацией или монополизацией ресурса одним потоком.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 56, страница 1 из 3
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / База данных в текстовом файле
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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