Multi-Tenancy is a single instance of software that serves multiple customers privately.
Hiểu đơn giản Multi-Tenancy là một hệ thống web application có nhiều khách hàng cùng sử dụng nhưng dữ liệu giữa các khách hàng hoàn tập độc lập, khách hàng này không thể truy cập vào dữ liệu của khách hàng kia.
Một vài ví dụ như là: Hệ thống chấm công, trả lương hay khai báo thuế cho tổng công ty có nhiều công ty con, công ty con có nhiều nhân viên và khách hàng, dữ liệu là độc lập, CEO, nhân viên trong hội đồng quản trị có thể thấy dữ liệu của tất cả công ty con, còn nhân viên trong cty con thì không được phép thấy dự liệu của những công ty khác nhưng dùng chung 1 hệ thống (website)
Dùng chung database, chia sẻ tables, thêm cột company_id làm khoá ngoại để biết users, data thuộc công ty nào.
Ưu Điểm: Dễ thực hiện
Khuyết Điêm:
Dùng chung database, chia sẻ schema, mỗi 1 công ty là 1 schema, cẩu trúc tables cho mỗi công ty đều giống nhau, mỗi khi tạo công ty mới sẽ tạo thêm schema và table mới.
Schema - là khái niệm được SQL server version 2005 thêm vào, database > schema > table > column. Database hổ trợ schema rất nhiều như: SQL Server, Postgres, Redshift (AWS), Snowflake, SAP/Sybase, Vertica, Azure, Oracle (schema = user)
Ưu Điểm:
Khuyết Điêm:
Mỗi tenant là một database
Cần phải chuẩn bị
Flyway
framework