An even simpler solution would be for people not to live in places where floods are apt to occur. However, there are problems with all of these solutions. First of all, many people live in flood-prone areas because these areas have rich soils and abundant moisture deposited by past floods and thus they produce good crops. Second of all, measures such as dikes and drainage canals that force the water to go elsewhere, often aggravate flood problems in other areas. As with many other problems, flooding is best handled by working with nature rather than against it.
Rivers overflow their banks when they receive more water than they can handle.
In some cases this is unavoidable such as during heavy rain or rapid melting of snow, but other times it is produced by human actions. Levees that do not allow a river to spill its excess onto a flood plain in one area, are going to increase the possibility of flood in another. Canals that drain urban areas rapidly, significantly increase the flow of local rivers. To lessen these problems, it may be best to remove residential areas from flood plains and allow rivers to flow through these areas as they always did during times of high water.