Итак, я хочу поместить 3 элемента в мою таблицу DynamodB, которая называется sites . Каждый сайт имеет свой идентификатор пользователя, каждый сайт имеет tour
, а каждый сайт имеет несколько pois
. Всякий раз, когда я помещаю в строку сайта, он работает нормально, но когда я импортирую тур или poi, он заменяет следующее.
Я понимаю, что если у вас есть записи того же первичного ключа, который он заменит, но я попытался заменить первичный ключ на что-то другое, и я просто не уверен, как поместить все 3 элемента в одну таблицу без необходимости создавать новый стол.
Сайт
const params = {
TableName: "sites",
Item: {
userId: event.requestContext.identity.cognitoIdentityId,
siteId: uuid.v1(),
siteAddress: data.siteAddress,
siteCounty: data.siteCounty,
siteNumber: data.siteNumber,
siteEmail: data.siteEmail,
siteCategory: data.siteCategory,
siteOpeningTimes: data.siteOpeningTimes,
siteFees: data.siteFees,
siteAccess: data.siteAccess,
siteGPS: data.siteGPS,
siteW3W: data.siteW3S,
siteHeaderText: data.siteHeaderText,
siteContentText: data.siteContentText,
createdAt: Date.now()
}
};
dynamoDb.put(params, (error, data) => {
// Set response headers to enable CORS (Cross-Origin Resource Sharing)
const headers = {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Credentials": true
};
// Return status code 500 on error
if (error) {
const response = {
statusCode: 500,
headers: headers,
body: JSON.stringify({ status: false })
};
callback(null, response);
return;
}
// Return status code 200 and the newly created item
const response = {
statusCode: 200,
headers: headers,
body: JSON.stringify(params.Item)
};
callback(null, response);
});
Тур
const params = {
TableName: "sites",
Item: {
userId: event.requestContext.identity.cognitoIdentityId,
siteId: event.requestContext.identity.siteId,
tourId: uuid.v1(),
tourName: data.tourName,
waypoints: data.waypoints,
duration: data.duration,
tourHeaderText: data.tourHeaderText,
tourContentText: data.ContentText,
createdAt: Date.now()
}
};
POIs
const params = {
TableName: "sites",
Item: {
userId: event.requestContext.identity.cognitoIdentityId,
siteId: event.requestContext.identity.siteId,
poiId: uuid.v1(),
poiName: data.poiName,
poiType: data.poiType,
poiDesc: data.poiDesc,
poiDuration: data.poiDuration,
poiRanking: data.poiRanking,
poiAccess: data.poiAccess,
poiTime: data.poiTime,
tourHeaderText: data.poiHeaderText,
tourContentText: data.poiContentText,
createdAt: Date.now()
}
};