Database design scenario for budget (whole and daily) - database

Scenario: Each user add funds to his account, for example 100 USD, and he defines that the system (our website) could spend up-to 10 USD per day for showing his ads in the website. each time his ad is shown in or website, it's gonna cost him 1 USD.
P.S: we're not inserting a record into the database every time his ad is shown, we just deduct the amount for showing his ad (1 USD) from his whole budget.
because we're showing too many ads, it's not possible to insert a record for each ad show into the database.
I have 2 columns in users table, whole_budget and daily_budget, so for the above user whole_budget is 100 and daily_budget is 10.
in the above scenario, how can we manage daily budget? so when an ad is shown, how we're gonna deduct 1 USD from his account?
how can we know if he has left daily budget? so we can decide to show his ad for the rest of the day or not.
I would appreciate your help

Related

Google Cloud billing information verify?

I have a problem with google cloud's billing verify. I added a debit card, which has received an X amount of eurocents from Google. To verify my billing, I need to type that amount into the 'billing account'. However, when I click 'billing' it says there are no accounts, when I try to create one, it tells me my billing account is awaiting confirmation. Any ideas?
TL;DR You could experience some issues when adding a payment method to your billing account in Google Cloud. The best you can do if you face any issue after reading the documentation is to contact Billing support.
If you receive an error such as Your card does not support automatic recurring payments or General decline of the card, please select a different form of payment.
As I can see from your question, you tried to verify Your Bank Account, as stated in the documentation:
A small test deposit will appear in your bank account within a few days of adding the account as a payment method. After you see the test deposit, you should verify the deposit as described in Find and enter a test deposit.
Instant bank verification
We offer instant bank verification for Google Cloud customers. Unlike the test deposit verification method, which takes several days to complete, instant bank verification allows you to verify your bank account within seconds.
You can use instant bank verification in either of the following situations:
If you haven't entered your bank account information yet
If you've recently entered your bank account information
Verify your payment method (US only)
Note: Currently, this service is available only to customers with a U.S. bank account.
In the resolve errors when attempting to add or update a payment method section, it mentions that
you might receive an error such as:
Your card does not support automatic recurring payments.
or
General decline of the card. No other information was provided by the issuing bank.
You might encounter these errors if you are using a debit card that requires two-factor authentication...
When you enter a debit card as your form of payment, Google checks whether your issuing bank approves subscriptions or recurring payments using that card. If your bank does not approve, this card will not work for automatic recurring payments.
If you receive an error such as Your card does not support automatic recurring payments or General decline of the card, please select a different form of payment. You can also contact Cloud Billing Support for help.
Therefore, some of the issues when adding a payment to your Cloud Billing account could be related to some bank restrictions and could even be related to some domestic and international regulations, as it occurs to customers in India.
As stated in the Payment Methods documentation:
The payment methods available for your self-serve (online) Cloud Billing account depend on your currency and country. In many countries, you can set up a credit card, debit card, or bank account as a primary payment method.
So in the first instance, I suggest you review the List of countries and regions.
If your country or region is not listed here, this might indicate that your country or region's currency is not supported for Google Cloud charges. In these instances, your Cloud Billing account might incur charges in USD.
For countries or regions not listed here, check the payment options tool for information.
Then, you should check the Supported payment methods:
The types of cards Google services lets you add to payment profiles vary by location and by product.
American Express
MasterCard
Visa
Discover (U.S. only)
JCB (Japan and U.S. only)
Visa Electron (Outside the U.S. only)
Elo credit cards (Brazil only; We don't allow you to add Elo debit cards)
Debit cards with the Visa or MasterCard logo
Bank account
If supported in your country, you can add a bank account to pay.google.com to pay your Cloud Billing account.
Verify Your Bank Account
Depending on your country, you might need to verify your bank account to use it as a payment method by direct debit. A small test deposit will appear in your bank account within a few days of adding the account as a payment method. After you see the test deposit, you should verify the deposit as described in Find and enter a test deposit.
Also, there are some unsupported payment methods:
Debit cards that require two-factor authentication
are not accepted for payment.
Prepaid cards and Virtual Credit Cards (VCCs) are not accepted for payment.
Bank accounts that only support disbursements are not accepted for payment.
Payment via wire transfer is not supported for monthly charge or threshold billing
accounts.
You may pay with a bank account by adding it as a payment method, if
supported in your
country.
So, as long as your payment method is supported, you could add it to your Cloud Billing account.
See also:
Fix payment and billing issues
How to fix a payment issue - YouTube video

Journey Builder sales force data entry for Updates not working

I am trying to use the "Sales Force data" as the entry point to our journey. This is the first time I am exploring this option using the Marketing cloud "Salesforce Data" connector in journey builder.
We need to capture Updates of Contacts in the sales cloud and trigger some action. So we configured the data entry point - Object chosen Contact. Chose Contact Id for "Select who to inject into the journey". Added. Choose the option to capture "Is Updated" and for our criteria chose Lat Modified Date greater then April 1st 2020. Added all contact fields we needed in the Data Extension and saved.
I can confirm that the data extension was created successfully. The journey was activated successfully.
I go to sales force sales and updated the contacts by changing the phone number or Address related fields and save. However I do not see the data flow into the marketing cloud data extension.
If I try the journey with entry point data source Contact inserted - it is successful.
What could I be doing wrong?
Thanks
Regards
Sid
We got help from sales force support - The records we were trying to modify already had a last update date greater than the one set in our criteria. We have to work around this by handling an update scenario in the journey design and creating a synchronized data - to sync contact/account objects in salesforce with marketing cloud every 15 minutes

Azure Active Directory B2B cost when user is not assigned a license

I noticed when I went to the Azure portal under Active Directory, I could assign a user the license to Azure AD Premium P2 (I have a trial).
However, I also noticed that I don't need to assign a user this license (in the step above), and the user is able to reset their password.
I know that users can only reset their password if we are not using the free version of Azure AD.
Does this mean that the user above who is able to access the password reset page is counted part of the cost ($11.52 per month per user in this case), even though they haven't been assigned an explicit license in their profile?
It seems you are wanted to know whether the cost calculated if the user assigned to the specific licence.
For your understanding, in each subscriptions how many users has this role access would not be counted as cost , let's say, you have 10 users with this access but 2/3 user used it. So bill will be calculated for 2/3 uses not 10 users even you assigned 10 users for this.
Cost usually be calculated upon total uses. So don't worry about the cost on azure cloud. It has uses friendly metrics.
Usually prices Default usage quota is 50,000 objects. If you exceeded the this limit then the new metrics would be applied as per your uses.
Note: For more details you could check this docs. Check your bills here

How long does it take to clear the first billing charge for my google app engine app?

I've made an app in order to send large mailings. Google enforces a 100 recipient a day maximum as I read on the quota page:
100 messages daily until first charge cleared; 20,000 messages per day thereafter
After deploying the app I've intentionally maxed out the 100 recipient limit, which adds a charge to my billing account of $0.01 This is also shown in my billing history.
However I've also set a weekly budget of $2.10 The one time charged associated with this budget has been made succesfully according to my Google Wallet. Looking at my current quota's it seems it's still limited to 100 even after waiting for 24 hours for my quota's to reset. Has anybody had the same problem? I don't know what to do next or how to interpret the "leave grace period" mentioned in my billing history.
If you were a new customer, you would have to wait one week, but you have already cleared a charge so you should be able to exceed the 100 user quota immediately. You may want to try to send mail and see if you get quota exceeded exceptions.
The "Leave Grace Period" messages mean that a charge previously failed putting you in the Grace Period. You then later successfully charged your credit card and left the Grace Period.
App Engine has announced that it will shortly be changing its billing system. So this answer will be outdated within a few weeks.

Update Whole Table every 5 minutes

We currently develop a portal in asp.net mvc2 with fluent nhibernate on amazon cloud servers which have lots of user which buying or selling shares. Also they comment every where and make other activities.
Portal is actually behave like multiple portals which we called Community. Our basic statistics based on users activity (buy,sell, comment etc). We have a basic structure called TopUsers. Which we show top user home page for all topics for loggedin community. On topic page we show top users for current topic etc.
Because of a lot of calculation I want to make a top users table. I am waiting for recommentations for this?
Your approach (separate table that gets periodically repopulated) is correct, except for the interval: your users will not be fanatically clicking on your site every minute to see updated stats, so after a certain threshold of data there isn't much point in refreshing your top users this often. Doing it once per day will usually be good enough.

Resources