TypeORM কী?

TypeORM এর পরিচিতি - টাইপওআরএম (TypeORM) - Web Development

325

TypeORM কী?

TypeORM একটি ওপেন সোর্স ORM (Object-Relational Mapping) লাইব্রেরি যা TypeScript এবং JavaScript দিয়ে সম্পর্কিত ডেটাবেসের সাথে কাজ করার জন্য ব্যবহৃত হয়। TypeORM ডেটাবেস মডেলিং, ডেটা ম্যানিপুলেশন এবং ডেটাবেস ইন্টারঅ্যাকশনের কাজগুলো সহজ করে তোলে, এবং ডেভেলপারদের প্রথাগত SQL কোড লেখার পরিবর্তে অবজেক্ট ওরিয়েন্টেড স্টাইল ব্যবহার করতে সহায়তা করে।

ORM (Object-Relational Mapping) হলো একটি প্রযুক্তি যা ডেটাবেস টেবিলগুলিকে ক্লাস ও অবজেক্টের সাথে ম্যাপ করে, যাতে ডেভেলপাররা ডেটাবেসে কাজ করার জন্য সাধারণ কোড ব্যবহার করতে পারেন, যেমন পুশ, পুল, আপডেট, এবং ডিলিট অপারেশন। TypeORM TypeScript এর সাথে সম্পূর্ণরূপে ইন্টিগ্রেটেড, তবে এটি JavaScript দিয়ে ব্যবহারের জন্যও সমর্থিত।

TypeORM এর প্রধান সুবিধা:

  1. TypeScript এর সাথে সম্পূর্ণ ইন্টিগ্রেশন: TypeORM মূলত TypeScript-এর জন্য তৈরি করা হয়েছে এবং এটি TypeScript এর পুরো ক্ষমতা ব্যবহার করে (যেমন টাইপ চেকিং, ডেকোরেটর, ইত্যাদি)। তবে, আপনি যদি JavaScript ব্যবহার করেন, TypeORM তা সমর্থন করে।
  2. ডেটাবেসের সাথে অবজেক্ট-মডেলিং: TypeORM ডেটাবেস টেবিলগুলোকে অবজেক্ট ক্লাসের মধ্যে রূপান্তরিত করে, যেটি ডেভেলপারদেরকে আরও পরিষ্কার ও সহজ কোডিং স্টাইল ব্যবহার করতে সহায়তা করে।
  3. ক্রস-ডাটাবেস সাপোর্ট: TypeORM একাধিক ডেটাবেস সিস্টেমের সাথে কাজ করতে সক্ষম, যেমন:
    • MySQL
    • PostgreSQL
    • SQLite
    • MariaDB
    • Microsoft SQL Server
    • Oracle
    • MongoDB (সামর্থন সীমিত)
  4. ডেটাবেস মাইগ্রেশন: TypeORM ডেটাবেস স্কিমার পরিবর্তন পরিচালনা করার জন্য একটি শক্তিশালী মাইগ্রেশন সিস্টেম সরবরাহ করে। এটি ডেভেলপারদেরকে সহজে ডেটাবেস স্কিমা আপডেট করতে এবং কনফিগার করতে সাহায্য করে।
  5. রিলেশনাল ডেটাবেস ফিচার: TypeORM ডেটাবেস রিলেশনশিপ যেমন এক-থেকে-এক, এক-থেকে-অনেক এবং অনেক-থেকে-অনেক সম্পর্কগুলি সহজে পরিচালনা করতে সহায়তা করে।
  6. Query Builder: TypeORM একটি শক্তিশালী Query Builder সরবরাহ করে, যা আপনাকে ডেটাবেস কুয়েরি তৈরি করতে এবং চালাতে সহায়তা করে, যেখানে আপনি সরাসরি SQL কোড লিখতে না পারলেও কাস্টম কুয়েরি তৈরি করতে পারবেন।
  7. অটো-ডেটাবেস সিনক্রোনাইজেশন: TypeORM একটি অটো-সিনক্রোনাইজেশন ফিচার প্রদান করে, যেখানে ডেভেলপার কোনো মডেল পরিবর্তন করলে TypeORM সেটি ডেটাবেসে অ্যাপ্লাই করতে পারে (যদিও প্রোডাকশন পরিবেশে এটি অ্যাকটিভ করা উচিত নয়)।

TypeORM এর বৈশিষ্ট্যসমূহ:

  1. Entity (এনটিটি): TypeORM এ Entity হল একটি ক্লাস যা ডেটাবেস টেবিলের প্রতিনিধিত্ব করে। প্রতিটি ক্লাসের একটি @Entity() ডেকোরেটর থাকে, যা TypeORM কে জানায় যে এটি একটি টেবিলের প্রতিনিধিত্ব করে।

    উদাহরণ:

    import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm';
    
    @Entity()
    export class User {
      @PrimaryGeneratedColumn()
      id: number;
    
      @Column()
      firstName: string;
    
      @Column()
      lastName: string;
    
      @Column()
      age: number;
    }
    
  2. Repositories (রিপোজিটরি): TypeORM রেপোজিটরি একটি ডেটাবেসে নির্দিষ্ট Entity এর সাথে কাজ করার জন্য ব্যবহৃত হয়। রেপোজিটরি ব্যবহার করে আপনি CRUD (Create, Read, Update, Delete) অপারেশন করতে পারেন।

    উদাহরণ:

    import { getRepository } from 'typeorm';
    import { User } from './User';
    
    const userRepository = getRepository(User);
    const user = await userRepository.findOne({ where: { id: 1 } });
    console.log(user);
    
  3. Relations (রিলেশনশিপ): TypeORM বিভিন্ন ধরনের সম্পর্ক পরিচালনা করতে সহায়তা করে, যেমন OneToMany, ManyToOne, এবং ManyToMany রিলেশনশিপ। রিলেশনশিপ ডিফাইন করার জন্য আপনি @ManyToOne(), @OneToMany(), ইত্যাদি ডেকোরেটর ব্যবহার করতে পারেন।

    উদাহরণ (OneToMany সম্পর্ক):

    @Entity()
    export class Post {
      @PrimaryGeneratedColumn()
      id: number;
    
      @Column()
      title: string;
    
      @ManyToOne(() => User, user => user.posts)
      user: User;
    }
    
    @Entity()
    export class User {
      @PrimaryGeneratedColumn()
      id: number;
    
      @Column()
      firstName: string;
    
      @OneToMany(() => Post, post => post.user)
      posts: Post[];
    }
    
  4. Migrations (মাইগ্রেশন): TypeORM মাইগ্রেশন সিস্টেম ব্যবহার করে আপনি ডেটাবেস স্কিমা আপডেট করতে পারেন। মাইগ্রেশন ব্যবহার করে ডেটাবেসের পরিবর্তনগুলো ট্র্যাক করা এবং কনফিগার করা সম্ভব।

    উদাহরণ:

    # মাইগ্রেশন তৈরি করা
    npm run typeorm migration:generate -n CreateUserTable
    
    # মাইগ্রেশন চালানো
    npm run typeorm migration:run
    
  5. Query Builder: TypeORM Query Builder একটি শক্তিশালী টুল যা আপনাকে ডেটাবেসে কাস্টম কুয়েরি তৈরি করতে সহায়তা করে। এটি আপনাকে সরাসরি SQL কোড লেখা ছাড়াই ডেটাবেস কুয়েরি তৈরি করতে সহায়তা করে।

    উদাহরণ:

    const users = await getRepository(User)
      .createQueryBuilder('user')
      .where('user.firstName = :name', { name: 'John' })
      .getMany();
    console.log(users);
    

TypeORM এর ব্যবহার কেন?

  1. কোডের পরিষ্কারতা: TypeORM ORM ভিত্তিক ডেভেলপমেন্টে কোডকে আরও পরিষ্কার এবং সহজ রাখে, বিশেষত যখন জটিল ডেটাবেস অপারেশন বা রিলেশনশিপ ব্যবস্থাপন করতে হয়।
  2. ব্যবহারযোগ্যতা: TypeORM JavaScript এবং TypeScript উভয় ভাষাতেই কাজ করে, এবং TypeScript ব্যবহারকারীদের জন্য এটি আরও উপযোগী হয়ে ওঠে, কারণ এতে টাইপ সেফটি রয়েছে।
  3. ডেটাবেস স্বাধীনতা: TypeORM আপনাকে একাধিক ডেটাবেস সিস্টেমের মধ্যে পারস্পরিক সমন্বয় করার সুযোগ দেয়। এটি SQL এবং NoSQL উভয় ডেটাবেস সমর্থন করে।
  4. নির্ভুল স্কিমা এবং মাইগ্রেশন: TypeORM এর মাইগ্রেশন সিস্টেম আপনাকে ডেটাবেসের স্কিমা পরিবর্তন পরিচালনা করতে সহায়তা করে, যা ডেভেলপারদের জন্য একটি শক্তিশালী বৈশিষ্ট্য।

সারাংশ

TypeORM একটি শক্তিশালী ORM লাইব্রেরি যা JavaScript এবং TypeScript দিয়ে সম্পর্কিত ডেটাবেসের সাথে কাজ করার জন্য ডিজাইন করা হয়েছে। এটি ডেটাবেস মডেলিং, ডেটা ম্যানিপুলেশন এবং ডেটাবেস ইন্টারঅ্যাকশনের জন্য বেশ কিছু শক্তিশালী ফিচার সরবরাহ করে। Entity, Repository, Relations, Query Builder, এবং Migrations-এর মতো বৈশিষ্ট্যগুলি TypeORM কে ওয়েব ডেভেলপমেন্টে একটি জনপ্রিয় এবং শক্তিশালী টুল করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...