Возможно ли сопоставление прочности одного ключа на нескольких структурах одного типа? - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь отобразить один адрес на нескольких структурах одного типа, который принадлежит одному и тому же адресу.Как я могу это сделать, если я хочу выбрать любую из «сохраненных» структур для одного адреса по запросу впоследствии?

Я создал структуру с именем Prescription и отображение с адресом пациента.Поэтому я действительно хочу сопоставить адрес пациента с несколькими структурами рецепта.

struct Prescription {
    address patients_address;
    string medicament;
    string dosage_form;
    uint amount;
    uint date;
}

mapping (address => Prescription) ownerOfPrescription;

address [] public patients;

function createPrescription(address patients_address, string medicament, string dosage_form, uint amount, uint date) public restricted {
    var newPrescription = ownerOfPrescription[patients_address];

    newPrescription.medicament = medicament;
    newPrescription.dosage_form = dosage_form;
    newPrescription.amount = amount;
    newPrescription.date = date;

    patients.push(patients_address) -1;
}

function getPre(address _address)view public returns (string, string, uint, uint){ 
    return( 
        ownerOfPrescription[_address].medicament, 
        ownerOfPrescription[_address].dosage_form, 
        ownerOfPrescription[_address].amount, 
        ownerOfPrescription[_address].date);
}

Теперь у меня есть функция, позволяющая вызывать все письменные рецепты для одного пациента.На самом деле я могу назвать только последний письменный рецепт для одного адреса.

1 Ответ

0 голосов
/ 28 марта 2019

Конечно, типом значения mapping может быть массив:

// map to an array
mapping (address => Prescription[]) ownerOfPrescription;

function createPrescription(...) ... {
     // add to the end of the array
     ownerOfPrescription[patients_address].push(Prescription({
         medicament: medicament,
         ...
     });

     patients.push(patients_address);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...