Enhanced IntEnz reactions: an example

Let's take EC 1.1.1.27 as an example. Currently, the reaction this enzyme catalyzes is stored in IntEnz as a plain String:
(<stereo>S</stereo>)-lactate + NAD<smallsup>+</smallsup> = pyruvate + NADH + H<smallsup>+</smallsup>
It could have been stored as:
NAD<smallsup>+</smallsup> + (<stereo>S</stereo>)-lactate = pyruvate + NADH + H<smallsup>+</smallsup>
or any other possible combination. It would always be the same reaction but for a computer it wouldn't.
So we intend to map every reaction participant to ChEBI so that to use a public stable identifier:

Then, a reaction could look like this (it won't!):
CHEBI:15846 + CHEBI:16651 = CHEBI:15361 + CHEBI:15378 + CHEBI:16908
This reaction can't be duplicated because we are not using any synonyms nor shuffling compounds. Thus, it can have a stable public identifier, no matter what's the EC number of the enzyme it is assigned to.

This is how data would be stored:
Note: only data for (S)-lactate is shown for tables REACTION_PARTICIPANTS and COMPOUND_DATA. Current implementation in blue, designed future implementation in green. Reaction example