Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2020 June 04

D

Danil in NodeUA - JavaScript and Node.js in Ukraine
Добрый вечер!) Подскажите, как «правильно» выбрать структуру класса для работы с базой? Я написал такой пример, что бы вы изменили/добавили?
Также, хотел бы узнать, можно ли сделать подключение к базе в самом конструкторе чтобы не вызывать метод Init?

Мой код:
class DataBase {

   constructor(host, user, dbname, pass) {
       this.host = host;
       this.user = user;
       this.dbname = dbname;
       this.pass = pass;
   }

   init() {
       this.connection = mysql.createConnection({
           host: this.host,
           user: this.user,
           database: this.dbname,
           password: this.pass
       });
   };

   getUser(user_id) {

   }

   updateUser(user_id) {

   }

}
источник

@

@andrii in NodeUA - JavaScript and Node.js in Ukraine
Danil
Добрый вечер!) Подскажите, как «правильно» выбрать структуру класса для работы с базой? Я написал такой пример, что бы вы изменили/добавили?
Также, хотел бы узнать, можно ли сделать подключение к базе в самом конструкторе чтобы не вызывать метод Init?

Мой код:
class DataBase {

   constructor(host, user, dbname, pass) {
       this.host = host;
       this.user = user;
       this.dbname = dbname;
       this.pass = pass;
   }

   init() {
       this.connection = mysql.createConnection({
           host: this.host,
           user: this.user,
           database: this.dbname,
           password: this.pass
       });
   };

   getUser(user_id) {

   }

   updateUser(user_id) {

   }

}
Посмотри сингл тон паттерн
источник

D

Danil in NodeUA - JavaScript and Node.js in Ukraine
@andrii
Посмотри сингл тон паттерн
спасибо)
источник

D

Danil in NodeUA - JavaScript and Node.js in Ukraine
@andrii
Посмотри сингл тон паттерн
Найс, то что нужно🙏🏽
источник

@

@andrii in NodeUA - JavaScript and Node.js in Ukraine
Danil
Найс, то что нужно🙏🏽
)
источник

VH

Vladyslav Holovko in NodeUA - JavaScript and Node.js in Ukraine
Якщо робити коннект в конструкторі це буде означати що як тільки ти робиш нью починається коннект. З ініт ти можешь спочатку отримати об'єкт а потим коннектитися коли потрібно.
источник

VZ

Viacheslav Zhuravsky... in NodeUA - JavaScript and Node.js in Ukraine
Danil
Добрый вечер!) Подскажите, как «правильно» выбрать структуру класса для работы с базой? Я написал такой пример, что бы вы изменили/добавили?
Также, хотел бы узнать, можно ли сделать подключение к базе в самом конструкторе чтобы не вызывать метод Init?

Мой код:
class DataBase {

   constructor(host, user, dbname, pass) {
       this.host = host;
       this.user = user;
       this.dbname = dbname;
       this.pass = pass;
   }

   init() {
       this.connection = mysql.createConnection({
           host: this.host,
           user: this.user,
           database: this.dbname,
           password: this.pass
       });
   };

   getUser(user_id) {

   }

   updateUser(user_id) {

   }

}
Общий класс для бд не должен быть к чему-то привязан. Пускай он выполняет роль подключения/отключения и содержит базовые методы для работы с базой. Методы работы с конкретными таблицами можно описать в классах наследниках.
источник
2020 June 05

DD

Dmytro Drachov in NodeUA - JavaScript and Node.js in Ukraine
Danil
Добрый вечер!) Подскажите, как «правильно» выбрать структуру класса для работы с базой? Я написал такой пример, что бы вы изменили/добавили?
Также, хотел бы узнать, можно ли сделать подключение к базе в самом конструкторе чтобы не вызывать метод Init?

Мой код:
class DataBase {

   constructor(host, user, dbname, pass) {
       this.host = host;
       this.user = user;
       this.dbname = dbname;
       this.pass = pass;
   }

   init() {
       this.connection = mysql.createConnection({
           host: this.host,
           user: this.user,
           database: this.dbname,
           password: this.pass
       });
   };

   getUser(user_id) {

   }

   updateUser(user_id) {

   }

}
Советую config передавать как обьект, а то пока что у вас 4 параметра, потом будет 10.
источник

D

Danil in NodeUA - JavaScript and Node.js in Ukraine
Dmytro Drachov
Советую config передавать как обьект, а то пока что у вас 4 параметра, потом будет 10.
Спасибо, учту
источник

DD

Dmytro Drachov in NodeUA - JavaScript and Node.js in Ukraine
Viacheslav Zhuravskyi
Общий класс для бд не должен быть к чему-то привязан. Пускай он выполняет роль подключения/отключения и содержит базовые методы для работы с базой. Методы работы с конкретными таблицами можно описать в классах наследниках.
Все верно, обычно в таких классах описут хендлинг ошибок конекта, реконеты, ретраии. Вообщем вся тех часть, а то что связано с бизнесом уже отдельно
источник

ЕХ

Егор Хильченко... in NodeUA - JavaScript and Node.js in Ukraine
Добрый день, вопрос немного не по ноде
есть таблица на mysql - в которую пишетсяя история, там уже больше 11 млн записей
на сколько сообразно переходить на другие БД, например Касандру - она вроде как для БигДаты?
и в какие моменты вообще нужно переходить на другие БД, и нужно ли вообще
источник

AL

Andrey Listochkin in NodeUA - JavaScript and Node.js in Ukraine
из этих 11 миллионов записей какие данные реально запрашиваются? Есть ли данные, которые можно считать архивными? Если да, заведите второй MySQL куда будете перекачивать данные из основной базы батчами, в периоды низкой нагрузки(). Если там будут сотни миллионов записей, но их некогда / почти никогда не будут читать, то ничего страшного.
источник

ЕХ

Егор Хильченко... in NodeUA - JavaScript and Node.js in Ukraine
Andrey Listochkin
из этих 11 миллионов записей какие данные реально запрашиваются? Есть ли данные, которые можно считать архивными? Если да, заведите второй MySQL куда будете перекачивать данные из основной базы батчами, в периоды низкой нагрузки(). Если там будут сотни миллионов записей, но их некогда / почти никогда не будут читать, то ничего страшного.
спасибо за ответ
источник
2020 June 06

С

Сергей in NodeUA - JavaScript and Node.js in Ukraine
Егор Хильченко
Добрый день, вопрос немного не по ноде
есть таблица на mysql - в которую пишетсяя история, там уже больше 11 млн записей
на сколько сообразно переходить на другие БД, например Касандру - она вроде как для БигДаты?
и в какие моменты вообще нужно переходить на другие БД, и нужно ли вообще
И чем 11 млн.  в касендре или еще где-то, лучше 11 млн. записей  в мускле?  В чем проблема-то?
источник

NM

Nikita Machekhin in NodeUA - JavaScript and Node.js in Ukraine
Сергей
И чем 11 млн.  в касендре или еще где-то, лучше 11 млн. записей  в мускле?  В чем проблема-то?
Не больше чем тем, чем лучше хранить данные в nosql нежели в sql
А так кассандра в первую очередь нужна для распределенных бд, а не для больших данных
источник

С

Сергей in NodeUA - JavaScript and Node.js in Ukraine
О, да в мускле даже партиционирование есть. Можно разбить таблицу на секции и наверное распихать по разным дата -файлам / тейблспейсам или что у них там,  последнюю секцию оставить, скажем историю за последний месяц, остальные файлы-секции изьять из бд в архив,  при острой необходимости вернуть взад,  без переписывания запросов и логики.  Вобщем наводка.
источник

NM

Nikita Machekhin in NodeUA - JavaScript and Node.js in Ukraine
И в постгресе такое есть
И наверное в большинстве остальных реляционных
источник

С

Сергей in NodeUA - JavaScript and Node.js in Ukraine
Ну да,  в оралке и ms-сервере точно.  В оракле такое делал.
источник

ДЗ

Дмитрий Зорин... in NodeUA - JavaScript and Node.js in Ukraine
Всем привет. Попал на проект где много require раскидано по всей логике.  Какие ещё веские аргументы можно предъявить ? помимо того что это не удобно читать и лучше объявлять все require в шапке
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Дмитрий Зорин
Всем привет. Попал на проект где много require раскидано по всей логике.  Какие ещё веские аргументы можно предъявить ? помимо того что это не удобно читать и лучше объявлять все require в шапке
require is a new global
источник