Database design question

From: <>
Date: 26 Jun 2006 07:59:30 -0700
Message-ID: <>

I have a database design questions. How can we specify one of two columns in a table should be not null? In other words, if one column is

null then another column should not be null. Here is an example. Let's say we have document and we need to specify permissions to the document. The document has either individual or group level permissions.

Document table

    doc_id int primary,
    doc_name varchar(50) not null

User table

    user_id varchar(50) primary,
    user_name varchar(100) not null

Group table

    group_id int primary,
    group_name varchar(50) not null

UserGroup table

    user_group_id int primary,
    group_id int not null,
    user_id varchar(50) not null

DocumentPermission table

   doc_id int,
   group_id int,
   user_id varchar(50)

So, either group_id or user_id should not be null in the DocumentPermission table. Is there anyway we can have constraint like this on the table? Is creating another group for that user the only solution (Involves more administration)? Any help would be appreciated.

Sreedhar Received on Mon Jun 26 2006 - 16:59:30 CEST

Original text of this message