Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tùy chỉnh trang chủ và email của ứng dụng giao dịch nhờ vào lịch sử người dùng:làm thế nào để làm điều đó đúng cách trên Rails / postgreSQL?

Lược đồ bạn đã mô tả sẽ rất hiệu quả cho loại truy vấn mà bạn quan tâm, miễn là bạn đặt các chỉ mục chính xác trên bảng của mình. Cơ sở dữ liệu không hoạt động giống như danh sách:đặt câu hỏi "XXX đã tham gia vào những giao dịch nào" không nên quét toàn bộ bảng, bởi vì một bảng được lập chỉ mục chính xác sẽ biết chính xác nơi để tìm tất cả các giao dịch của XXX.

Để thiết lập điều này một cách chính xác, đây là giao diện của quá trình di chuyển của bạn:

class CreateStandardUsers < ActiveRecord::Migration
  def change
    create_table :standard_users do |t|
      t.string :name
      t.timestamps
      # More fields go here
    end

    add_index :standard_users, :name
  end
end

class CreateDeals < ActiveRecord::Migration
  def change
    create_table :deals do |t|
      t.references :admin_user
      # other fields go here
    end

    add_index :deals, :admin_user_id
    # other indices go here... anything you want to search on efficiently.
  end
end

class CreateDealParticipations < ActiveRecord::Migration
  def change
    create_table :deal_participations do |t|
      t.references :standard_user
      t.references :deal

      t.timestamps
    end

    add_index :deal_participations, :standard_user_id
    add_index :deal_participations, :deal_id
    add_index :deal_participations, :created_at
  end
end

Vẫn còn rất nhiều thứ khác thuộc về những lần di chuyển này (ví dụ:bạn nên thêm các ràng buộc không null, ràng buộc duy nhất, v.v.). Nhưng vấn đề là việc có các chỉ số này làm cho các hoạt động cơ sở dữ liệu mà bạn đang mô tả cực kỳ nhanh chóng.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CHỌN * TỪ máy chủ MySQL được liên kết

  2. Làm thế nào để bạn tạo các câu lệnh đã chuẩn bị với đá quý mysql2?

  3. Tạo kết hợp bảng / cột bằng cách sử dụng SQL Query hoặc Laravel SQL Query Builder

  4. Cách nhanh nhất để tra cứu các bảng lớn cho các điểm trong bán kính MySQL (kinh độ vĩ độ)

  5. Chọn bản ghi Max và Min trong một lệnh MySQL