01/10/2018, 11:49
Một database hay nhiều database
Mình đang làm trang web quản lý kho, khoảng bảy table (khách hàng nhỏ lẻ), bây giờ mình có dự định tăng thêm lượng người dùng (khách hàng, khoảng 10 người thôi) cho cái app kia. Vậy nên tổ chức database như thế nào? có nên dồn CSDL của 10 khách hàng kia vào một database hay là mỗi người một cái database?
Bài liên quan
Sao lại phải mỗi khách hàng một bảng nhỉ, mình chưa thấy ai làm thế bao giờ, sao không lưu chung 1 bảng
đúng không phải vào một bảng mà vào một database bạn ạ,
Đây không phải khách hàng mà ý mình là một chủ kho hàng í. ông chủ kho này có rất nhiều khách hàng.
Một ông chủ này lai có 7 table dữ liệu ( khach_hang, san_pham, nhap_xuat…)
Okay mình hiểu rồi, thế thì vấn đề là cấu trúc kho hàng của mỗi ông chủ có giống nhau không, nếu không thì chắc phải dùng db riêng thật, thế thì đến lúc query phải if else các thứ vất vả lắm
dĩ nhiên tên hàng thì không giống nhau nhưng chúng cùng cấu trúc
san_pham=(id,ten,don_gia,cong_ty_id…)
mình muốn bảo toàn cái tên các table, chỉ đổi tên database, ví dụ như : user1_qlkho, user2_qlkho
các câu lệnh query vẫn để nguyên.
Cấu trúc giống nhau thì nên cho vào chung 1 db, mình nghĩ vậy
đó là ý kiến dùng 1 database, lúc đó các bảng lại phải thêm 1 field user_id
vd :
san_pham=(id,ten,don_gia,cong_ty_id…, user_id)
Đúng rồi bảng sẽ thêm field nhưng có sao đâu nhỉ. Mình nghĩ db của bạn cũng không đến mức quá to mà phải chia nhỏ ra sản phẩm mình làm ở cty cũng là thương mại điện tử, và lưu chung hết vào 1 db mà
Vậy là phải có một bảng
chu_cua_hang=(id,ten…)
và tất cả các bảng
san_pham=(id,ten,don_gia,cong_ty_id…, chu_cua_hang_id)
…
…
;
cám ơn bạn nhé
Thế nhưng kho của các ông chủ này lại chẳng liên quan gì đến nhau, điều này cũng giống như chúng ta cung cấp 1 cái site app cho mỗi ông chủ kho, vậy thì việc gì phải thêm vào table một field nữa để làm hỏng cái app sẳn có.?
Vậy 1 app quản lý của bạn chỉ dành cho 1 khách hàng (ông chủ) nhất định?
Vậy mỗi ông chủ có quản lý sản phẩm gì đặc biệt đến mức phải mỗi ông 1 db và 1 app?
Thiết kế csdl cho mỗi khách hàng là khác nhau, khách hàng ở đây là công ty riêng biệt và ứng dụng dành cho công ty đó cũng riêng biệt. Nếu bạn gộp chung nhiều công ty lại với nhau dùng cùng csdl thì khi bạn thay đổi csdl của 1 công ty nào đó thì công ty khác sẽ bị ảnh hưởng. Chưa ai làm thế bao giờ. Còn cái việc trong csdl của mỗi công ty có bao nhiêu bảng, lưu những dữ liệu nào là việc thiết kế của bạn.
Nó cũng như bạn phân phối một app quản lý kho, bạn đến nhà người ta và bạn cài vào máy tính cho họ để quản lý kho, vậy một app là 1 db thôi bạn. Quy trình nghiệp vụ thì giống nhau.