Первичный ключ WIX.com, который будет использоваться в качестве ссылки

Я новичок в платформе веб-разработки WIX.

Мне нужно использовать первичный ключ таблицы 1 в качестве ссылки на таблицу 2, но я не могу использовать для этой цели идентификатор таблицы 1.

Интересно, лучше всего «скопировать» этот идентификатор в поле «Заголовок» (первичный ключ) этой таблицы 1. Как мне это сделать? Это лучший метод?

Спасибо, Артуро.


person arturovillar    schedule 10.10.2018    source источник
comment
Добро пожаловать в StackOverflow. Пожалуйста, прочитайте раздел справки о том, как задать, а затем отредактируйте свой вопрос, так как это поможет сообществу лучше понять вашу проблему и даст вам хороший ответ: stackoverflow.com/help/how-to-ask   -  person Graham    schedule 11.10.2018


Ответы (1)


Артуро:

Вы пытались сделать это без использования кода wix? Просмотрите эту публикацию, чтобы узнать, возможно.

Теперь в коде единственный способ добавить поле ссылки из другого набора данных — использовать идентификатор. Но обратите внимание, что идентификатор — это имя поля, используемое в сборе данных для панели мониторинга и представления редактора. При доступе к значению идентификатора в коде вам необходимо использовать ключ поля _id.

Итак, в вашей таблице 2 вам нужен столбец (поле), который имеет тип ссылки, и дайте ему имя поля, например «Ссылка на таблицу 1». Редактор сгенерирует для вас ключ поля, который будет выглядеть как table1Reference.

Теперь, если у вас есть запись из таблицы 1, которую вы хотите связать с таблицей 2, вы делаете что-то вроде этого:

wixData.query('Table1')
.eq('title', 'uniqueTitle')
.find()
.then((results) => {
    if (results.totalCount !== 1) {
        throw Error('We didn't get a record from Table1');
    }
    // Success add this in a new record in Table2
    let table1Item = results.items[0];
    let table2Data = {
        table1Reference:table1Item._id,
        anotherTable2Field:"Some info for table2"
    };
    return wixData.save('Table2', table2Data)
    .then((savedRecord) => {
        // Successful save!
        // Do something here....
    });
})
.catch((error) => {
    console.log(error);
});

Удачи! Стив

person SteveC    schedule 17.10.2018
comment
Спасибо, Стив. Я попробую. Это выглядит не так просто, как в MS Access или в SQL Server, где эта процедура выполняется автоматически. Это трудная кривая обучения! Артуро - person arturovillar; 18.10.2018
comment
Добро пожаловать. Я думаю, вы можете упростить table2Data, просто назначив весь table1Item и отбросив '._id' как апи разберется. Я полагаю, что сравнивать технологии может быть сложно. Я подозреваю, что если бы вы читали и писали в базу данных SQLSever с помощью javascript, вы бы столкнулись с подобным синтаксисом. В любом случае надеюсь, что это работает для вас! - person SteveC; 20.10.2018