- Регистрация
- 22.07.2014
- Сообщения
- 1 983
- Благодарностей
- 817
- Баллы
- 113
Я тут запустил Code Creator и протащился по поводу того, как он генерит код. Уже сижу мечтаю, как я буду перемалывать Зенкой сайты, но у меня сейчас нет понимания одной важной вещи: как лучше всего работать с таблицами, если проекты пишешь на C#.
В любом среднем проекте есть есть схема реляционной базы данных (говоря по-простому, набор взаимосвязанных таблиц):
- данные пользователя
- список пользователей с дополнительными данными
- друзья пользователя (взаимосвязи)
- журнал контактов с пользователем
- ...
Если говорить об обработке данных десятков тысяч пользователей с нормальной скоростью, то как лучше действовать? Я вижу варианты:
1) Пользоваться встроенными таблицами ZP. Я не знаю, насколько они функциональны по сравнению с DataTable и как их связывать с классами, которые я создам. Они вроде не могут быть типизированными. Не знаю, можно ли там хотя бы ключи и индексы иметь и насколько они производительны (RTFM, конечно).
2) Завести базу на SQLite, создать набор классов, описывающий сущности проекта, привязать эти классы к DataTables из DataSet, в общем, классика. Но тут надо будет неудобство, что если я напишу какую-то библиотечку, то чтобы её можно было подключить к проекту на «кубиках», то она должна реализовать какой-то совсем мелкий функционал типа «одну простую табличку передал в библиотечку, другую табличку получил». И там накладные расходы на взаимодействие сборки с интерпретатором будут большие, так ведь?
Ну или есть ещё какой-то способ. Я уверен, на этом форуме уже человек 20 эту проблему решали. Может, уже и библиотеки выложены. Помогите найти хороший велосипед, не хочу изобретать свой!
В любом среднем проекте есть есть схема реляционной базы данных (говоря по-простому, набор взаимосвязанных таблиц):
- данные пользователя
- список пользователей с дополнительными данными
- друзья пользователя (взаимосвязи)
- журнал контактов с пользователем
- ...
Если говорить об обработке данных десятков тысяч пользователей с нормальной скоростью, то как лучше действовать? Я вижу варианты:
1) Пользоваться встроенными таблицами ZP. Я не знаю, насколько они функциональны по сравнению с DataTable и как их связывать с классами, которые я создам. Они вроде не могут быть типизированными. Не знаю, можно ли там хотя бы ключи и индексы иметь и насколько они производительны (RTFM, конечно).
2) Завести базу на SQLite, создать набор классов, описывающий сущности проекта, привязать эти классы к DataTables из DataSet, в общем, классика. Но тут надо будет неудобство, что если я напишу какую-то библиотечку, то чтобы её можно было подключить к проекту на «кубиках», то она должна реализовать какой-то совсем мелкий функционал типа «одну простую табличку передал в библиотечку, другую табличку получил». И там накладные расходы на взаимодействие сборки с интерпретатором будут большие, так ведь?
Ну или есть ещё какой-то способ. Я уверен, на этом форуме уже человек 20 эту проблему решали. Может, уже и библиотеки выложены. Помогите найти хороший велосипед, не хочу изобретать свой!