I'm going to toss the answer "it depends." If your application is simply related to the location of correctly typed address labels, a set of lines (line1, line2, line3, etc.) may be sufficient. A text block may also work, depending on how the data is entered. Give the user a box and let them type? Make them suitable in 3, 4, 5 lines? Whatever.
However, if you want to be able to "do things" with data, such as sorting by zipcode, analyze the distribution by city, state and / or country or track the number of digits at your street addresses (10 Main St. vs. 54321 Main St.) then you will need separate columns for each important piece of information.
It seems that the requirements will include “space for the address,” and decisions as to what actually happens to the addresses will appear later ... at this time they will want to be able to sort / count / expose / independently, even if they never will not do. According to the links provided in other messages, as soon as you reach the international level, it can become very complicated. I would say try and keep it as simple as reasonable, where “reasonable” depends on the business case for the requirements.
source share