|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
Пишу программу. Тех.данные: VS C# 2012, интерфейс на WPF), которая запускается без установки на любом компьютере, где есть .NET 4.5. Решаемые задачи: отчёты разные, на основе отчётов другие отчёты, статистика и прочая ерундистика, всё это выводится на экран с помощью DataGrid'ов. Суть: в программе будет пункт "файл->сохранить как..." - и в этом вся загвоздка. Пользователь работает примерно как в excel - с отдельными файликами. Сохраняет их, создаёт новые.. А их структура генерируется прогой автоматически в момент сохранения. По идее, я бы использовал SQL Server compact, по функционалу мне б его хватило. Но я ж БД должен создать (все таблицы спроектировать) на этапе разработки программы. А там уже "сохранить как" не катит. Плюс, данные отправляются в файл до того, как пользователь успеет нажать "сохранить". Подумываю об xml-логике или json-логике, тогда всю логическую структуру БД реализую в классах. Но в этом древнем топике говорят, что это бред. Вопрос: как народ делает программы, поддерживающие команду "сохранить как..." и "открыть..."? ну, "открыть" - всё понятно, просто подключение к новому файлу. дополнительно Шальная мысль: Я пока точно не решил. Возможно, стоит как в Access, в начале работы предлагать "создать файл" и работать с ним непрерывно. Но это не закрывает вопрос, как генерировать такой файл динамически и где хранить всю его структуру. Опять-таки, возможно, стоит в xml? смущает, что громоздкий будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 10:08 |
|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
Прочитал, подумал, так и не понял, в чем собственно проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 10:21 |
|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
В том, что в существующих БД делается всё вот так: Открывается среда разработки Создаётся файл БД, проектируются в ней таблицы и связи создаётся программа, которая подключается к этой БД. В моём случае я хочу, чтобы пользователь получил сею мою программу (без файлов БД), а БД создавал только выполнением команды "сохранить как..." вопрос - где хранить структуру данных со связями, в каком формате лучше хранить БД? Моё решение пока - в файл писать XML, структуру хранить в классах. Как бы сделали другие участники форума? Потому что по той ссылке было сказано, что использование XML как хранилища - это изобретение велосипеда и "лучше бы воспользоваться готовыми решениями". А готовые решения - это создание файла БД на этапе создания программы. Не подходит. Либо я что-то не так делаю (что скорее всего) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 10:26 |
|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
skyANAПрочитал, подумал, так и не понял, в чем собственно проблема. Тоже самое. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 10:27 |
|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
Да блин. Вопрос: как БД создавать не на этапе проектирования программы, а динамически. Полно мануалов, описывающих работу с БД, и везде сказано "начнём с создания файла БД". Где почитать, как работать с динамически создаваемыми файлами БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 10:29 |
|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
Charles Weyland, А что будешь хранить в самой БД? P. S. DML запросы еще никто не отменял. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 10:30 |
|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
ЕвгенийВ, *DDL запросы. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 10:30 |
|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
ЕвгенийВ, примерно такой запрос легко выполняется при помощи SqlCommand Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 10:33 |
|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
Charles WeylandВ том, что в существующих БД делается всё вот так: Открывается среда разработки необязательно ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 10:34 |
|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
ЕвгенийВCharles Weyland, А что будешь хранить в самой БД? P. S. DML запросы еще никто не отменял. Вообще, я ща практикуюсь. Скажем, список участников соревнования, команда, в которой он играет, очки, которые он получил, в каких кругах какое место занял. Плюс в программе должна быть ещё внутренняя БД - города, страны, и пр. Но с этим всё понятно. Такую БД я создам на этапе разработки. Получается, человек запускает программу, создаёт с чистого листа новый список участников и начинает тыкать кнопки, формируя, кто с кем соревноваться будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 10:38 |
|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
Charles WeylandПолучается, человек запускает программу, создаёт с чистого листа новый список участников и начинает тыкать кнопки, формируя, кто с кем соревноваться будет. собственно таблички (пустые) со списками участникиов и т д создаются на этапе разработки. никаких динамических структур не набблюдается ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 10:40 |
|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
Charles Weyland, не очень понятно, как это должно работать и что потом с этим делать если в меню файл сохранить - так и сохранять в файл, как ексель, в чем проблема? формат файла? xml можно если все же это база - то * во-первых я не вижу что структура таблиц динамическая, те надо тупо сделать базу пустышку и отдавать ее виесте с программой * во-вторых файл-сохранить уже не катит хотя может надо все добро сохранять в файл формата базы данных, вопрос зачем? что пользователь потом будет делать с этим файлом? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 11:03 |
|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
ИзопропилCharles WeylandПолучается, человек запускает программу, создаёт с чистого листа новый список участников и начинает тыкать кнопки, формируя, кто с кем соревноваться будет. собственно таблички (пустые) со списками участникиов и т д создаются на этапе разработки. никаких динамических структур не набблюдается +1 струтура базы придумывается на этапе проектирования, создаётся при установке программы, данные добавляет/изменяет/удаляет пользователь во время работы ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 11:26 |
|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
Charles WeylandДа блин. Вопрос: как БД создавать не на этапе проектирования программы, а динамически. Getting started with SQLite in C# ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 11:30 |
|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
Charles Weyland, как вариант entity attribute value ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 12:14 |
|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
Charles Weylandя бы использовал SQL Server compact, по функционалу мне б его хватилоУ SQL Server compact нет проблем с созданием новой БД, погуглили бы http://stackoverflow.com/questions/1487845/create-sql-server-ce-database-file-programmatically в том числе через модель Entity Framework можно её создавать Подумываю об xml-логике или json-логике, тогда всю логическую структуру БД реализую в классах. Но в этом древнем топике говорят, что это бред.Для меня "всю логическую структуру БД реализую в классах" звучит не как бред, а как самое легкое, понятное и простое в поддержке решение (разве что не самое быстрое в написании), но только вот без "xml-логики или json-логики", добавление "-логика" к этим буквочкам как раз ближе к бреду. Это если вся БД без проблем влезает в память, конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 12:37 |
|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
Charles Weyland, вчитался повнимательнее - понял, что у вас еще проблема в том, что не хочется, чтобы какие-то файлы вообще создавались еще до команды "сохранить как"? ну, тут либо просто смириться с тем, что у программы будет временный рабочий файл ( в него тупо копировать пользовательский файл при его "открытии", а из него - при "сохранении") - и тогда можно обойтись MSSQL CE, либо юзать SQLite in-memory database (если там нет проблем с операциями "сохранить в файл всю БД" и "загрузить БД из файла" - об этом не знаю), либо таки громоздить свои объекты и надеяться на достаточность и нетормознутость LINQ to objects (плотно, как замену обычного SQL, не юзал, поэтому не уверен) кстати, сериализовать их при сохранении можно и в XML, если захочется ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 13:06 |
|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
А нафига тут СУБД вообще ? Из первого поста ТС необходимость СУБД неочевидна. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 13:40 |
|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
schiА нафига тут СУБД вообще ? Из первого поста ТС необходимость СУБД неочевидна. от 10 до 1000 участников соревнования из разных школ и разных команд. Соревнуются в разных направлениях, в разных возрастных категориях и т.д. И каждый получает награду. По всем соревнованиям формируются отчёты и выводятся на принтер. Обычная такая бесплатная программка получится. Дам школам (они ж нищие все), какие покупать не хотят, пусть юзают. сбсна, вот, БД есть, значит, и СУБД должна быть) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 13:48 |
|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
Может Тс имел ввиду под "сохранить как" выгрузка в разных форматах из базы на диск ?! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 14:22 |
|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
Andrey1306Может Тс имел ввиду под "сохранить как" выгрузка в разных форматах из базы на диск ?! нет. Я имел в виду, что программа имеет собственный тип файлов. Соответственно, работая в программе, можно сохранить (как и в excel'е) результаты в файл, а в следующий раз открыть этот файл для продолжения работы, или передать его по почте другому человеку, который с помощью этой же проги его откроет. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 14:43 |
|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
Charles WeylandAndrey1306Может Тс имел ввиду под "сохранить как" выгрузка в разных форматах из базы на диск ?! нет. Я имел в виду, что программа имеет собственный тип файлов. Соответственно, работая в программе, можно сохранить (как и в excel'е) результаты в файл, а в следующий раз открыть этот файл для продолжения работы, или передать его по почте другому человеку, который с помощью этой же проги его откроет. Прекрасно. СУБД тут никоим боком. Сделай любой формат файла, от csv до json/xml и используй его в своей программе. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 14:57 |
|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
Charles WeylandЯ имел в виду, что программа имеет собственный тип файлов. Соответственно, работая в программе, можно сохранить (как и в excel'е) результаты в файл, а в следующий раз открыть этот файл для продолжения работы, или передать его по почте другому человеку, который с помощью этой же проги его откроет. Проблема-то собственно в чем? Использовать/не использовать СУБД? Или в каком виде хранить? Это разные вопросы, мало связанные меж собой. Нравится как в экселе - храни как в экселе: все данные в XML, а XML в ZIP. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 15:04 |
|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
Dima TCharles WeylandЯ имел в виду, что программа имеет собственный тип файлов. Соответственно, работая в программе, можно сохранить (как и в excel'е) результаты в файл, а в следующий раз открыть этот файл для продолжения работы, или передать его по почте другому человеку, который с помощью этой же проги его откроет. Проблема-то собственно в чем? Использовать/не использовать СУБД? Или в каком виде хранить? Это разные вопросы, мало связанные меж собой. ИМХО проблема в том, что не определены потребности пользователей. Вот к примеру участники соревнований и боллельщики хотят следить за ходом соревнований? Если да, то как? Учитывая при этом, что они из разных школ. И что-то мне подсказывает, что школы уже где-то хранят информацию о прошедших и предстоящих мероприятиях. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 15:57 |
|
Тяжёлый вопрос выбора СУБД, чтобы потом не пожалеть..
|
|||
---|---|---|---|
#18+
Нет, не хотят. Только stand-alone, никаких сетей. Обойдутся) это всё есть в платных программках. Я бесплатную простую делаю. Просто есть такой чел, зовут его "судья-секретарь". Жалуется "вот если бы ты нам программку такую сделал, а то в excel'е тяжко". Есть у него около 15 разных таблиц, - участников перекидывает между ними в процессе соревнований. Так что задача только облегчения только его работы, а то ошибок уйму делает вручную. Все эти отчёты распечатываются - и да, хранят. В толстых журналах. IT до школ не добралось ещё)) На крайняк, экспорт в excel сделаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2016, 16:10 |
|
|
start [/forum/topic.php?fid=20&msg=39294504&tid=1400381]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 265ms |
total: | 428ms |
0 / 0 |