database table design

Posted by e.b.white on Stack Overflow See other posts from Stack Overflow or by e.b.white
Published on 2010-09-09T13:27:34Z Indexed on 2010/12/22 13:54 UTC
Read the original article Hit count: 160

Filed under:
|
|

I design the tables as below for the system
which looks like a package delivering system

For example, after user received the package, postman should record in system,
and the state(history table) is "delivered",and operator is this postman,
the current state(state table) is of course "delivered"

history table:
+---------------+--------------------------+
|   Field       |        Desc              |
+---------------+--------------------------+
|    id         |    PRIMARY KEY           |
+---------------+--------------------------+
|    package_id |    package_tacking_id    |
+---------------+--------------------------+
|    state      |     package_state        |  
+---------------+--------------------------+      
|    operators  |    operators              |
+---------------+--------------------------+
|    create_time|    create_time           |
+---------------+--------------------------+   

state table:
+---------------+--------------------------+
|   Field       |        Desc              |
+---------------+--------------------------+
|    id         |    PRIMARY KEY           |
+---------------+--------------------------+ 
|   package_id  |    package_tacking_id    |
+---------------+--------------------------+
|    state      |    latest_package_state  |
+---------------+--------------------------+  

Above is just the basic information to record, some other information(
like invoice, destination,...) should be recored as well.
But there are different service types like s1 and s2, for s1 it is not needed
to record invoice but s1 need, and maybe s1 need some other information to record
(like the tel of end user).

After all, at delivering way stations there are additional information to record,
and for different service type the information type is different.

My question is:
1. For different service type, shall I need to declare different tables(option A) or just
one big table which can record all information for all types(option B)?
2. If option A, since the basic information above is MUST, how
can prevent from declaring there duplicate fields in different tables?

© Stack Overflow or respective owner

Related posts about database

Related posts about design