Trong lập trình chắc hẳn bạn đang đang hoặc sắp thao tác làm việc với dữ liệu ảnh Nhưng giải pháp lưu ảnh như làm sao cho phải chăng thì vẫn là những vấn đề mới mẻ và nặng nề nhằn mang lại những chúng ta mới làm việc với dữ liệu. 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ới truy vấn với hình ảnh đơn giản.Có 2 hình dáng lưu trữ hình ảnh riêng biệt sẽ là 1 ảnh được giao hàng cho một bảng và nhiều bảng.

Bạn đang xem: Lưu đường dẫn ảnh vào database

Một ảnh chỉ sử dụng cho một bảng

Việc một ảnh chỉ dùng cho 1 bảng là việc thịnh hành và liên tiếp với phần đông hình ảnh riêng viết và đặc trưng như: logo, banner,... Những hình ảnh này được áp dụng nhiều nhưng con số lại vô cùng ít cùng cần vận tốc lấy nhanh.

*

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

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

Một ảnh chỉ dùng cho nhiều bảng

Có vô cùng nhiều phương pháp để thiết kế và thực hiện cho sự việc này, ở đây mình đưa ra những cách kiến tạo mà mình cho là lựa chọn tốt nhất đối với mọi người.

1. Biện pháp truyền thống

Thiết dữ liệu theo dạng sau.

*
Sql query:

# đem avata của user tất cả name là "Tuan"select * from image where user_id = (select users.id from users where users.name = "Tuan") & product_id is null# Đó là phương pháp lấy thường thì của chúng ta. Mà lại cũng có thể viết ngắn gọn hơn bằng phương pháp dùng join
SELECT image.* FROM image
JOIN users on users.id = user_id where users.name = "Tuan"#Tương từ bỏ ta hoàn toàn có thể dùng đến producdvhnghean.edu.vn
Kết quả.

*

Ưu điểm : cũng khá dễ dàng giải pháp xử lý và thao tác.Nhược điểm : chú ý cũng đoán ra được cách lưu ảnh kiểu này nếu như chỉ có một 2 bảng thì ko sao, nhưng mà nếu có rất nhiều hoặc tương đối nhiều bảng cần sử dụng đến bảng image thì nó thật sự khủng khiếp khi ta thường xuyên phải thêm các trường (table)id.Từ đây thông thường ta sáng chế ra một phong cách 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 rất có thể nhận thấy thay vày thêm các (table)_id thì ta chỉ cần 1 relation_id với type để biểu đạt nó là hình ảnh của bảng nào.

Sql query:

-- thử join bảng image cùng users vào xem tác dụng thu được như thế nào nhé :DSELECT * FROM images JOIN users ON users.id = relation_id-- Còn đấy là cách 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_id
WHERE relation_id = 2 & type = "user"Kết quả

*
*

Ưu điểm: Việc thực hiện cách thiết kế này giúp phần nhiều nhà vạc triển có thể dễ dàng mở rộng hệ thống, dường như việc tạo các type giúp cho bạn năng động trong cách triển khai hành vi của hệ thống.Nhược điểm: Như bạn thấy đó ở biện pháp 1 chúng ta có thể sử dụng hình ảnh từ users hoặc producdvhnghean.edu.vn. Cơ mà đến biện pháp 2 phía trên lại là nhược điểm năng năn nỉ nhất, việc áp dụng kiểu type này đã đã góp phần bắt buộc bạn nếu muốn 1 hình hình ảnh sử dụng trong tương đối nhiều bảng thì cũng đồng nghĩa bạn sẽ phải tạo thành thật nhiều row tương ứng.Từ đây mọi nhà phân phát triển năng lực lại sáng tạo ra một phương pháp nữa các chúng ta cũng có thể tham khảo nhé .3. Liệu phần nhiều cách sau đây có là giải pháp thực thụ
Cổ điểm theo phong thái mở rộng lớn
*
Với việc thêm 1 bảng trung gian using_images thuận lợi thấy đó là sự mở rộng của biện pháp 1 nhưng lại thay do phải chỉnh sửa 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 áp dụng cách này việc sử dụng using_type rất có thể giúp chúng ta tạo nhiều type khác nhau từ hồ hết bảng ban đầu. VD:

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

Xem thêm: Top 10+ Công Viên Đẹp Ở Hà Nội, Mở Cửa Vui Chơi Miễn Phí, Top 10 Công Viên Đẹp Nhất Hà Nội

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ì không đúng sót. Thank you!

Để lưu hình ảnh vào đại lý dữ liệu, các bạn cần chú ý rằng trong Database kiểu tài liệu được Image được lưu trữ dưới dạng mảng byte<>. Chính vì vậy để lưu hình ảnh(Image) vào Database không có cách nào không giống là bạn phải chuyển hình ảnh(Image) mà bạn có nhu cầu lưu vào Database dưới dạng mảng byte<> sau đó mới tiến hành chèn vào Database. Để đưa một Image bên dưới dạng mảng byte<> bạn sử dụng đối tượng người dùng File
Stream, kế tiếp tiến hành chèn vào cơ sở tài liệu như bình thường. Chúc chúng ta vui !images/smilies/online.gif
vấn đáp kèm Trích dẫn
Junior member
*
Gửi do darkan
khanhthuy : Vậy là chúng ta chưa bao giờ lưu ảnh vào database bên dưới dạng nhị phân? Theo chúng ta thì "tốn tài nguyên hơn" là như vậy nào. Hiển thị một hình ảnh lưu nhị phân thì có nhu cầu các gì "phức tạp hơn hết sức nhiều" đối với lưu đường dẫn?
Dark thấy cực kỳ kỳ quặc là chúng ta không nắm rõ việc mình đang có tác dụng là gì, ưu điểm yếu là nắm nào mà cứ so sánh hồn nhiên, đặc điểm này hay hơn cái kia.
chúng ta có thể nói rõ hơn cho bạn hiểu hơn về sự việc này được không. Mình new học đề nghị cũng có khá nhiều cái phải học hỏi. images/smilies/applause.gif images/smilies/applause.gif
trả lời kèm Trích dẫn
Junior member
Bạn nói cách khác rõ hơn cho doanh nghiệp hiểu rộng về vụ việc này được không. Mình mới học phải cũng có không ít cái yêu cầu học hỏi. images/smilies/applause.gif images/smilies/applause.gif
Nếu bạn chăm chỉ để ý một chút sẽ hiểu nguyên nhân khi có tác dụng website người ta lại lưu đường dẫn. Tuy vậy không phải khi nào người ta cũng lưu đường truyền của file vào database. Việc lưu nắm nào còn tùy trực thuộc vào mục đích sử dụng.Thử phân tích một ít nhé. Giả dụ lưu file(nói chung, file ảnh cũng tương tự) vào database thì nên làm mọi gì? y như bạn nguoidanongxala nói bên trên kia, đề xuất đọc file dưới dạng binary, gửi thành byte<> nhằm lưu trong database. Khi nào cần file này lại đọc byte<> từ database lên,chuyển lại thành file.Còn bí quyết lưu đường dẫn, chắc rằng bạn đang rõ.Với biện pháp lưu file vào database, sẽ gặp mặt phải sự việc về tài nguyên của hệ thống khi có tương đối nhiều request mang đến file đó thuộc lúc. Với trang web thì việc này là hay xuyên, vì thế người ta ko dùng phương pháp lưu hình ảnh vào database với website(thực tế vẫn có vài trick để khắc phục câu hỏi này).Tuy nhiên nếu con số request không lớn, lại sở hữu yêu cầu thống trị các file, bảo mật thông tin file ... Thì bài toán lưu file vào database lại là lựa chọn xuất sắc hơn.Đại khái là nó bao gồm vài điểm như zầy ^^!