Попытка работать в моей голове, как обмен работает, в частности, как таблицы баз данных разработаны и то, что происходит внутри, в базе данных, когда кто-то размещает заказ.
Может быть, есть с открытым исходным кодом там уже, но это своего рода забава, чтобы сделать этот вид математики / решении проблем, только с ручкой и бумагой (или notepad.exe!)
Так, скажем, дб имеет следующие заказы:
ставка, 2.00000000, 10.70000000
ставка, 1.00000000, 10.80000000
спросить, 2.00000000, 11.00000000
спросить, 3.00000000, 11.20000000 <- давайте назовем этот порядок X
Теперь то, что происходит, когда эти гипотетические заказы размещаются:
ставка, 3.00000000, 10.70000000
проверить самый низкий спросить -> 11.
Эта ставка меньше, чем самая низкая спросить, поэтому никакой торговли не происходит, заказ он просто добавляется в БД.
ставка, 3.00000000, 11.50000000
проверить самый низкий спросить -> 11.
Эта ставка выше самый низкий спросить, так что проверить, сколько монет доступны по этой низкой цене -> 2.
Это заполняет только часть заказа, поэтому проверьте следующий самый низкий спросить -> 11.2.
Проверьте, сколько монет доступны по этой цене -> 3.
Это больше, чем достаточно, чтобы заполнить заказ, поэтому заказ будет завершен, однако это спросить также 2 BTC осталось заполнить.
Вопрос: В этом случае, когда порядок X лишь частично заполнен, было бы лучше, чтобы пометить строку как полные и добавить новую запись с оставшейся суммой, или просто изменить строку, чтобы показать новую сумму?
например.
вставить метод:
дб раньше:
спросить, 3.00000000, 11.20000000
дб после того, как:
спросить, 3.00000000, 11.20000000, полная
спросить, 2.00000000, 11.20000000
или метод редактирования:
дб раньше:
спросить, 3.00000000, 11.20000000
дб после того, как:
спросить, 2.00000000, 11.20000000