Mucosoft
Megapat
- Katılım
- 5 Mart 2014
- Mesajlar
- 5.514
- Makaleler
- 12
- Çözümler
- 41
Node.JS ile "MySQL Server" çalıştırma
Node.JS kullanarak "MySQL Server" nasıl çalıştırılır? Bağlanmaktan söz etmiyorum, Node.JS üzerinde MySQL sunucusu çalışacak. Bunun sebebi Node.JS kurulu panel bulunması ve MySQL kurma seçeneği bulunmuyor. Ayrıca dışarıdan paket yükleme izni de yok.
www.technopat.net
Kendi veritabanı sistemimi geliştirmek isterim. Yapay zekaya sordum, bana JSON tabanlı veritabanı sistemi önerdi. Kodu aşağıdaki yer alıyor.
JavaScript:
const fs = require('fs');
class SimpleDatabase {
constructor(databaseName) {
this.databaseName = databaseName;
this.data = {};
this.loadDatabase();
}
// Veritabanı oluşturma veya yükleme
loadDatabase() {
try {
const data = fs.readFileSync(`${this.databaseName}.json`, 'utf8');
this.data = JSON.parse(data);
} catch (err) {
// Eğer dosya yoksa veya bir hata oluşursa yeni bir veritabanı oluştur
this.saveDatabase();
}
}
// Veritabanı adını güncelleme
updateDatabaseName(newName) {
this.databaseName = newName;
this.saveDatabase();
}
// Veritabanı kaydetme
saveDatabase() {
fs.writeFileSync(`${this.databaseName}.json`, JSON.stringify(this.data, null, 2), 'utf8');
}
// Veritabanı kaldırma
dropDatabase() {
fs.unlinkSync(`${this.databaseName}.json`);
this.data = {};
}
// Tablo oluşturma
createTable(tableName, columns) {
this.data[tableName] = { columns, rows: [] };
this.saveDatabase();
}
// Veri ekleme
insertData(tableName, rowData) {
this.data[tableName].rows.push(rowData);
this.saveDatabase();
}
// Veri güncelleme
updateData(tableName, rowIndex, updatedData) {
this.data[tableName].rows[rowIndex] = updatedData;
this.saveDatabase();
}
// Veri kaldırma
deleteData(tableName, rowIndex) {
this.data[tableName].rows.splice(rowIndex, 1);
this.saveDatabase();
}
// Veri seçme
selectData(tableName) {
return this.data[tableName].rows;
}
}
// Örnek kullanım
const myDatabase = new SimpleDatabase('myDatabase');
myDatabase.createTable('users', ['id', 'name', 'age']);
myDatabase.insertData('users', { id: 1, name: 'John Doe', age: 25 });
myDatabase.insertData('users', { id: 2, name: 'Jane Doe', age: 30 });
console.log('Before Update:');
console.log(myDatabase.selectData('users'));
myDatabase.updateData('users', 0, { id: 1, name: 'Updated John Doe', age: 26 });
console.log('\nAfter Update:');
console.log(myDatabase.selectData('users'));
myDatabase.deleteData('users', 1);
console.log('\nAfter Delete:');
console.log(myDatabase.selectData('users'));
// Veritabanını kaldırma
// myDatabase.dropDatabase();
Bu yöntemin MySQL kadar performansının yüksek olmayacağını düşünüyorum. Bunun için veritabanını klasöre çevirme ve klasör içinde tablo dosyaları yerleştirmeyi düşündüm ama yine de size de bir sorayım diyorum. Örneğin tek tablo dosyasında 1.000 veya 10.000 tane veri olduğunda performans ne ölçüde etkilenir? Daha iyi bir yöntem bulunuyor mu? Sistemi kendim kodlamak istiyorum, farklı bir yazılım tavsiye etmeyin. NodeJS tabanlı bir kütüphane olursa önerebilirsiniz.