Sails SJS: как определить пользовательский атрибут типа для модели без создания новой связи

#mysql #sails.js #waterline

#mysql #sails.js #ватерлиния

Вопрос:

У меня есть модель, Budget и мне нужно сохранить в ней массив Budget_Item . Если я объявлю новый тип модели, он будет сохранен в новой таблице и станет новой связью, что, я думаю, не лучшая практика. В этом контексте я думаю, что для этого мне нужен своего рода гибрид с реляционной и нереляционной базой данных Budget_Item .

Единственный подход, насколько мне известно, заключается в том, чтобы решить эту проблему, определив Budget_Item array как json тип и приведя его впоследствии перед использованием.

Лучший способ объяснить мой случай — дать подход к тому, что я хочу, если бы я был в Matrix, где все легко и возможно, и было бы следующим:

Модель Budget.js :

 module.exports = {

  primaryKey: 'id',

  attributes: {

    id: {
      type: 'number',
      unique: true,
      autoIncrement: true
    },

    .  .  .

    budget_items: {
      type: 'BudgetItem[]'     <===========What i need======
    },
}
  

Кто-нибудь сталкивался с подобной ситуацией или знает, как ее решить?

Заранее спасибо!

Комментарии:

1. Есть ли таблица номенклатуры и бюджета?

2. Да, у меня есть таблица Budget, но мне не нужна таблица связей BudgetItem, учитывая, что они больше не будут повторяться, поэтому я просто хочу установить ее как атрибут Budget

3. Вы могли бы попробовать что-то вроде type:'json', column_type:'blob' .

4. Думал об этом больше, вы всегда могли просто упорядочить данные перед сохранением.

5. Я думаю, что лучший способ для этого — type: 'string' , columnType: 'text' и stringify перед созданием.