Storing stock prices only is in general not very useful. We usually want to store additional static information about companies and related derivatives such as stock options and futures. Economic theory tells us that looking for cycles and trends in historical price data is more or less a waste of time; therefore, creating a database seems be even more pointless. Of course you don't have to believe the theory, and anyway creating a stock prices database is a fun technical challenge. Also a database is useful for portfolio optimization (see the recipe, Optimizing an equal weights 2 asset portfolio).
We will base the design on the star schema pattern covered in Implementing a star schema with fact and dimension tables. The fact table will hold the prices, with a date dimension table, asset dimension table, and a source dimension table as in the following diagram:
Obviously, the schema will evolve over time with tables, indexes, and columns added or...