Now your idea is good, but won’t it require me to charge all the customers with an amount at beginning of the month Cause that would mean 10,000 entries every month and then another 10,000 if they all pay?
Yes. This shouldn’t be an issue if everything is properly indexed.
The “charge” records could all be inserted automatically (e.g., a cron job) based on what package each customer is subscribed to. If you do it during off hours (early morning, for example), then it shouldn’t impact any other usage.
Is this all managed internally to your company (i.e., you/ an employee updates the DB) or is it connected to a customer-facing app (or similar, e.g., customers can view their account details and pay on your website)?
status tinyint(1) NOT NULL DEFAULT '0',
This should be a foreign key to a table that defines each of your variables.
'0' is a string, not a tinyint: should default to