User Tools

Site Tools


atomic_fdm

This is an old revision of the document!


Atomic fdm idea

concept

Goal: make FDM more reliable, stable and recent.

Full redesign of the database.

Concept of atoms.

One atom = film + screen(in cinema) + day

each atom has fixed exchange rate for local currency for this cinema

  • number of attendance (sold tickets)
  • cost of them
  • gbo
  • nbo
  • users_id

Of course we may also store each ticket. But I think enough to summarize them into 'atomic day'.

The atom should be never modified (or their modification time restricted for example by the day when it was added). Only new atom which refer to this one may be applied in the next dates.

That I've describe main processing being with films (box office)

For cost calculation we may also review and write how it should be look as.

Also other atomic based things we need to process somehow to have then invoices and payments.

database rules

  • never delete old records
  • never change old records
  • the reports should calculate data by adding to atoms all modifiers which whatever happening

Ok, this approach in use in blockchain for example – all data being stored forever. Easy to know what was happened in past time.

The database after the update may be have less tables. I think we will use InnoDB engine and transactions.

Benefits

  • well work with correct exchange rates
  • fix invoice feature
  • not need to lock months
  • less bugged calculation engine
  • simplified logic of calculations

c# coding

The goal to use the recent technologies which getting much better in last years. C# now has future methods and a lot of other logical improvements.

migration

I think to create atomic structure using current database.

When engine will be ready – we will run all tests to compare old reports with new reports may be even in automic mode which will go through excel reports and compare each cell automatically.

Then from some day we will go to fdm_2

ok, this is my draft about how it could be

atomic_fdm.1644053111.txt.gz · Last modified: 2022/02/05 09:25 by yetidi