Senior
Чӣ тавр тасвир дар PostgreSQL нигоҳ дошта мешавад — оё ин як рамзгузорӣ ё маҷмӯи рақамҳо аст? Чӣ тавр тасвирро ҳамчун матн нигоҳ доштани мумкин аст?
sobes.tech AI
Ҷавоб аз AI
Дар PostgreSQL, тасвир одатан ҳамчун маълумоти бинарӣ дар майдони bytea ё дар объекти калон (LOB) нигоҳ дошта мешавад. Ин кодикунӣ дар маънои оддӣ нест, балки танҳо пайдарпайии байтҳоест, ки мазмуни файлро намояндагӣ мекунанд.
Барои нигоҳ доштани тасвир ҳамчун матн, онро метавон ба Base64 код кард — ки маълумоти бинариро ба сатрии ASCII табдил медиҳад, ки дар майдони матнӣ нигоҳ дошта мешавад. Аммо, чунин усул андозаи маълумотро тақрибан 33% зиёд мекунад.
Маслиҳат барои нигоҳдории тасвир дар Base64 дар Go:
import (
"encoding/base64"
"io/ioutil"
"log"
)
func encodeImageToBase64(path string) string {
data, err := ioutil.ReadFile(path)
if err != nil {
log.Fatal(err)
}
return base64.StdEncoding.EncodeToString(data)
}
Дар базаи додаҳо, ин сатр метавонад дар майдони навъи text ё varchar нигоҳ дошта шавад. Агар зарур бошад, онро метавон ба формати бинарӣ баргардон кард.