Hi all,
I currently in a process of redesign our schema structures , and I'm looking
for optimal way of doing it.
Here is what I've in mind:
The schema structure should be as optimal as possible for the following
considerations (Starting with the most important):
- Maintainable - developing , installing and patches should be simple
and with minimum interface to the system.
- Backup & Recovery - Backup and restore the schema should be easy.
- Cloning schemas - Building a new environment (production, Q/A ,
integeration) should be quick and simple.
- Secure - Maximum security between users & developers.
- Modularity - Support in adding new modules
I come up with the divisions of schemas:
- CoreSYS - contains common utilities which are used with all the
applications. For example - Logger utility , formatting routines
This schema hold code (pl\sql , java , oracle types) ,and configurations.
This schema has a lot of privileges (almost DBA). No one should login
directly to this schema.
- CoreSYSTEM - synonyms and views on coreSYS objects.
This schema has a minimal privileges and several execute privileges on
CoreSYS objects . It's primarily use by field engineering personal.
- SHARED - contains input tables (data from external sources like
files) ,which all the applications use.
- <App>SYS - contains application configuration and management tables.
This schema is used by all the application modules ,
- <App>SYSTEM - contains the all the data which is generate by the
applications modules.
This schema is used by all the application modules.
- <App>User - This is the point of login for the application user . It
can be one (middle tier user) or more.
This schema has the minimal privileges as possible.
- <App>LOG - contains log and audit table per application
This schema has a minimal privileges . It's primarily use by field
engineering personal.
Terms and meaning :
Module - A logical unit which perform several business actions.
Application - A set of connected modules
Here are my questions :
- What do you think about the design ? Are there any standard design which
I can learn from ?
- What is the best way to implement several environments ?
Different databases ?
One database with different schema <App>Sys_QA , <App>_Sys_Prod ? And
then to use private synonyms to point to the right schema ?
- Any comments , or suggestions will be gladly welcome.
I will collect all the answers (if there will be any) and I will put a
summary of those later.
Thanks for the effort .
Amihay Gonen
DBA,
972-3-9268280
This e-mail message (including any attachment) is intended only for the
personal use of the recipient(s) named above. This message is confidential
and may be legally privileged. If you are not an intended recipient, you
may not review, copy or distribute this message. If you have received this
communication in error, please notify us immediately by e-mail and delete
the original message.
--
http://www.freelists.org/webpage/oracle-l
Received on Mon Dec 20 2004 - 04:32:11 CST