As @SQLChicken states, a good data model is a very important start to have for stable, consistent, extensible and scalable databases.
After you have a logical model, the next step is implementation of the logical model in the target RDBMS. There are many important considerations and actions that are required to do this. For example, depending on the anticipated size of your database, you may decide that certain structures should be de-normalized for performance reasons but this decision should be made carefully, with the implications fully considered. Other considerations:
- If you haven't done so already, decide on a naming standard/convention. Name your objects in a consistent way. Take time to define each object such as tables and columns in the database by adding a comment to each.
- Define your table primary keys, foreign keys, data constraints, and indexes. Indexes can be added later, so don't worry about getting them all up front. The need for them tends to become apparent over time ;-)
- Define views of data that may be useful for reports, ad-hoc queries, etc.
- Minimize trigger use - these can be expedient, but have many pitfalls.
By no means is this list exhaustive. Become familiar with the (voluminous) Oracle documentation.