A rug under the dining table is meant to stay put while you pull your chair out. If it is too small, the back legs of the chair catch the edge every time someone sits down, and the rug curls up. The fix is not complicated: the rug needs to be bigger than the table by the room a chair uses.
Most design guides agree on the same number: the rug should reach at least 60 cm beyond every edge of the table. Some suggest up to 90 cm for a roomier look. The logic is simple. A chair that is pulled back for sitting ends up roughly 50 to 65 cm from the table edge, and you want all four chair legs to stay on the rug, not on and off it.
So for a table of 180 × 90 cm, the smallest sensible rug is 300 × 210 cm. That surprises many people, because it is a lot larger than the table.
There are two things going on in the plan above. First, the pull-back distance: how far the back of the chair sits from the table edge when someone is seated. Around 60 cm is typical, and it grows if you pull out further to get up or sit down. Second, the rug margin: how far the rug reaches past the table. If the margin is smaller than the pull-back, the chair slides off.
Try it: set the pull-back to 60 and watch the chairs as you shrink the rug. They go terracotta as soon as the margin drops below that distance. The longer the table, the more chairs there are to catch an edge, so it is worth testing the ends too.
The rule is for comfort, not a law. A few cases where a smaller rug is fine:
Mark the rug size on the floor with masking tape before you decide. Walk around it and pull a chair out. If you already own a rug that is a bit small, try it: even a rug that covers most of the chair movement will look better than one that sits under the table only. Second-hand rugs are a good way to get a large size at a normal budget.
Prices vary a lot by material and size. As a rough guide, large rugs of about 200 × 300 cm often start around €150–300 for a machine-made synthetic, and cost more for wool. A washable, low-pile rug is easier to live with under a dining table.