Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

470
Visualizações
MySQL: asociación de un número de ID único a varios números de ID

Tengo un archivo JSON que ejecutaré a través de un programa PHP para llenar una base de datos MySQL.

Tengo la mayoría de las tablas y columnas de la base de datos en su lugar, pero tengo un problema de lógica.

Estoy tratando con reuniones y con personas que van a las reuniones.

Cada persona va a múltiples reuniones únicas, y en cada reunión asisten varias personas.

Cada persona tiene una identificación única y cada reunión tiene una identificación única.

Mi problema:

Sé que no puedo poner varias identificaciones en una sola fila para cada persona, así que estoy tratando de pensar en una forma de relacionar la identificación de una persona con varias identificaciones de reuniones y viceversa.

En última instancia, quiero poder ejecutar consultas que devuelvan todas las reuniones a las que asiste alguien y las personas que asisten a las reuniones.

Aquí hay un ejemplo de la información que tengo para una persona:

 "District": "Massachusetts District 1", "Email": null, "FirstName": "Lynn", "Id": 14869, "LastName": "Aaronson", "MeetingIds": [ 15650, 15651, 15652, 15653, 15654, 15655, 15656, 15657, 15658, 15659, 15660 ] },

Esta es una reunión:

 { "AddressLine1": "717 Hart Senate Office Building", "AddressLine2": "120 Constitution Avenue, NE", "CongressPersonID": 8766, "CongressPersonStateDistrict": "WI", "ConstituentIds": [ 14810, 14811 ], "End": "2014-05-08T10:15:00.0000000-04:00", "Id": 15898, "Location": "SH717 ", "MeetingWith": "Kathleen Laird", "Name": "Sen. Tammy Baldwin", "PhoneNumber": "(202) 224-5653", "Start": "2014-05-08T10:00:00.0000000-04:00", "Status": "Confirmed" },
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Ampliando mi comentario , los principios básicos serían así. Ahora tenga en cuenta que este es un código no probado que escribí de la parte superior de mi cabeza, y asumo mucho aquí, como usar PDO y declaraciones preparadas y que ya tiene consultas para insertar los datos en las tablas de people y meetings . , sin mencionar la estructura de sus datos JSON.

Tendrá que ajustar esto para que funcione para su situación exacta, este ejemplo es solo para ilustrar los conceptos de cómo resolvería este problema.

Guión de importación:

 $data = json_decode($json_data, true); foreach ($data['meetings'] as $meeting) { // insert meeting details into `meetings` table $stmt = $db-prepare('INSERT INTO `meetings` ...'); $stmt->execute(array(...)); } foreach ($data['people'] as $person) { // insert person details into `people` table $stmt = $db->prepare('INSERT INTO `people` ...'); $stmt->execute(array(...)); foreach ($person['MeetingIds'] as $meetingId) { // insert attendance into `attendees` table $stmt = $db->prepare('INSERT INTO `attendees` (`person_id`, `meeting_id`) VALUES (:person_id, :meeting_id)'); $stmt->execute(array(':person_id' => $person['Id'], ':meeting_id' => $meetingId)); } }

Luego, donde necesita obtener los detalles:

 // fetch a specific person $stmt = $db->prepare('SELECT * FROM `people` WHERE `id` = :id'); $stmt->execute(array(':id' => $person_id)); $person = $stmt->fetch(PDO::FETCH_ASSOC); // fetch all meetings for this person $stmt2 = $db->prepare(' SELECT `meetings`.* FROM `attendees` INNER JOIN `meetings` ON `meetings`.`id` = `attendees`.`meeting_id` WHERE `attendees`.`person_id` = :person_id '); $stmt2->execute(array(':person_id' => $person['id'])); $meetings = $stmt2->fetchAll(PDO::FETCH_ASSOC);

Puede hacer exactamente lo mismo a la inversa si tiene una reunión y necesita encontrar a todas las personas que asistieron.

No probé este JOIN en una base de datos real, así que no se sorprenda si no funciona exactamente como lo escribí. Estoy seguro de que alguien me corregirá si está mal :-)

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda