Trong lập trình chắc rằng bạn đang đang hoặc sắp thao tác với dữ liệu hình ảnh Nhưng cách lưu hình ảnh như như thế nào cho hợp lí thì vẫn chính là những vấn đề mới mẻ và khó khăn nhằn mang lại những các bạn mới làm việc với dữ liệu. Nội dung bài viết này mình gửi ra các cách xây dựng dữ liệu sử dụng và truy vấn với hình hình ảnh đơn giản.Có 2 dạng hình lưu trữ hình ảnh riêng biệt đó là 1 ảnh được giao hàng cho một bảng và những bảng.

Bạn đang xem: Cách đưa hình ảnh vào sql server

Một hình ảnh chỉ cần sử dụng cho một bảng

Việc một ảnh chỉ dùng cho một bảng là việc thịnh hành và thường xuyên với hầu hết hình ảnh riêng viết và đặc thù như: logo, banner,... Hầu như hình hình ảnh này được sử dụng nhiều nhưng số lượng lại rất ít với cần tốc độ lấy nhanh.

*

Ví dụ bên trên đây đơn giản là avata của người dùng.Câu lệnh lấy hình ảnh chỉ đơn giản và dễ dàng như sau :

SELECT * FROM avata WHERE user_id = ?Ưu điểm : dễ sử dụng, thao tác nhanh chóng,...Nhược điểm : bạn chỉ hoàn toàn có thể sử dụng 1 ảnh với 1 user.

Một hình ảnh chỉ dùng cho những bảng

Có siêu nhiều phương pháp để thiết kế và áp dụng cho vụ việc này, ở đây mình đưa ra những cách thi công mà mình cho rằng lựa chọn rất tốt đối với tất cả người.

1. Bí quyết truyền thống

Thiết dữ liệu theo phương thức sau.

Xem thêm: Hướng Dẫn Cách Kết Nối Máy In Qua Wifi Hiệu Quả, Làm Sao Để Kết Nối Laptop Với Máy In Qua Wifi

*
Sql query:

# rước avata của user có name là "Tuan"select * from image where user_id = (select users.id from users where users.name = "Tuan") and product_id is null# Đó là giải pháp lấy thông thường của bọn chúng ta. Dẫu vậy cũng hoàn toàn có thể viết ngăn nắp hơn bằng phương pháp dùng joinSELECT image.* FROM imageJOIN users on users.id = user_id where users.name = "Tuan"#Tương tự ta hoàn toàn có thể dùng cho productsKết quả.

*

Ưu điểm : cũng rất dễ dàng xử trí và thao tác.Nhược điểm : chú ý cũng đoán ra được biện pháp lưu ảnh kiểu này nếu như chỉ có 1 2 bảng thì ko sao, nhưng lại nếu có nhiều hoặc không ít bảng sử dụng đến bảng image thì nó thiệt sự khủng khiếp khi ta tiếp tục phải thêm những trường (table)id.Từ đây tầm thường ta trí tuệ sáng tạo ra một hình dạng sau.2. Cách đổi mới từ truyền thống

Thiết dữ liệu theo hình thức sau.

*

Chúng ta có thể nhận thấy thay bởi vì thêm các (table)_id thì ta chỉ cần 1 relation_id và type để biểu hiện nó là hình ảnh của bảng nào.

Sql query:

-- demo join bảng image và users vào xem tác dụng thu được ra làm sao nhé :DSELECT * FROM images JOIN users ON users.id = relation_id-- Còn đấy là cách bọn họ thao tác để lấy hình ảnh của người tiêu dùng sử dùng type =))SELECT images.* FROM imagesjoin users on users.id = relation_idWHERE relation_id = 2 and type = "user"Kết quả

*
*

Ưu điểm: Việc sử dụng cách xây dựng này giúp những nhà phạt triển có thể dễ dàng mở rộng hệ thống, dường như việc tạo những type giúp cho bạn linh động trong cách triển khai hành vi của hệ thống.Nhược điểm: Như các bạn thấy đó ở bí quyết 1 chúng ta có thể sử dụng hình hình ảnh từ users hoặc products. Nhưng đến giải pháp 2 đây lại là nhược điểm năng vật nài nhất, việc thực hiện kiểu type này đã đã đóng góp phần bắt buộc bạn nếu còn muốn 1 hình hình ảnh sử dụng trong không ít bảng thì cũng đồng nghĩa các bạn sẽ phải tạo nên thật nhiều row tương ứng.Từ đây hầu hết nhà vạc triển khả năng lại sáng tạo ra một giải pháp nữa các chúng ta có thể tham khảo nhé .3. Liệu số đông cách dưới đây có là chiến thuật thực thụCổ điểm theo phong thái mở rộng lớn
*
Với việc thêm một bảng trung gian using_images dễ dàng thấy đó là sự mở rộng của phương pháp 1 nhưng thay bởi phải sửa đổi bảng (alter) images thì ta chỉ cần thêm cột vào bảng trung gian.Cải tiến mở rộng

*
Khi bạn thực hiện cách này việc thực hiện using_type có thể giúp bạn tạo nhiều type khác biệt từ mọi bảng ban đầu. VD:

idname
1user
2product
3user, product
Kết luận.Việc bạn sử dụng những phương thức để lưu giữ trữ ảnh hay file nào thực ra nó chưa hẳn là bắt buộc phải làm như nào so với mọi ứng dụng. Nhưng khi chúng ta thiết kế một biện pháp thông minh và phù hợp với bài toán được đặt ra thì khi làm việc hết sức thuận lợi và nhanh chóng.Ở bài viết trên mình không đủ can đảm chắc hầu như thiết kế của mình là trọn vẹn tối ưu và hay. Nhưng bao gồm một điều là nếu bạn là newbie và đang có ít kinh nghiệm thì bí quyết này vẫn giúp các bạn dễ phát âm hơn về bề ngoài lưu trữ hình ảnh cũng như luyện biện pháp truy vấn thật tốt.

Cảm ơn các bạn đã đọc nội dung bài viết của bản thân . Mọi chủ kiến đóng góp xin vui lòng bình luận bên dưới, mình đang tiếp thu và sửa đổi nếu có gì sai sót. Thank you!