@Dolmat
программирование

Как правильно связать модели в golang?

Подскажите как обработать куки и сохранить статью с владельцем.
PostgreSQL
create table users(
id varchar(64) primary key, username varchar(64) not null,
password VARCHAR(64));
create table article(
id varchar(64) Primary key,
name Varchar(64),
user_id VARCHAR(64) REFERENCES Users(id));
Моделb
type Article struct {
Id string
Name string
User_*User
}
Запись в базу
func CreateArticle(name string, user *User) (int64, error) {
id, _ := uuid.NewV4()
result, _ := db.Exec("INSERT INTO articles VALUES($1, $2, $3)", id, name, user)

rowsAffected, err := result.RowsAffected()
return rowsAffected, nil
}
Функция созранения статьи
func NewArticle(w http.ResponseWriter, r *http.Request) {
session, _ := store.Get(r, "cookie-name")

name := r.FormValue("name")
owner := session.Values["username"]
// При проверке типа owner показывает стринг выдает юззернейм
user, _ := models.GetUser(owner) Определяется как интерфейс

rowsAffected, err := models.CreateArticle(name, description, images, price, user)
}
User в базе
func GetUser(username string)(*User, error) {
row := db.QueryRow("SELECT * FROM users WHERE username=$1", username)
fmt.Println(row)

user := new(User)

err := row.Scan(&user.Id, &user.Username, &user.Password)
if err != nil {
return nil, err
}

return user, nil
}

Будьте добры помогите в данном вопросе а также скиньте пару примеров кода или целых работ статей очень признателен!
  • Вопрос задан
  • 137 просмотров
Пригласить эксперта
Ответы на вопрос 1
rxecore
@rxecore
Если я правильно понял вопрос то
article := new(Article)
user := new(User)
article.User = append(article.User,user)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы