My idea of the db structure. Sorry about the other message.

2006/8/11, Martin Marques <[email protected]>:
On Thu, 10 Aug 2006, Michel Moreira wrote:

> I dont think that saving the all the field data in one vcard string is
> a good idea.
>
> How about searching my contacts that live on some city, some info that
> is in this vcard string?
>
> It isnt good to add a field to each contact info that is available...
>
> I think that can be created 2 tables, one with the contact info type
> and one that has an 1-n relationship between the contacts table and
> tis contact info type table, where u can put the info.
>
> Then u can search freely withouth performance issues and store and
> extends all the contact info without having too many empty fields.

This is a good idea. can we through some ideas on DB structure?


--
 21:50:04 up 2 days,  9:07,  0 users,  load average: 0.92, 0.37, 0.18
---------------------------------------------------------
Lic. Martín Marqués         |   SELECT 'mmarques' ||
Centro de Telemática        |       '@' || 'unl.edu.ar';
Universidad Nacional        |   DBA, Programador,
    del Litoral             |   Administrador
---------------------------------------------------------

<<attachment: erd.jpg>>

/*
Created         11/8/2006
Modified        11/8/2006
Project         RounCube
Model           Contacts
Company         
Author          Michel Moreira <[EMAIL PROTECTED]>
Version         
Database        mySQL 5 
*/


Create table contacts (
        contact_id Int NOT NULL,
        changed Datetime,
        del Tinyint,
        name Varchar(128),
        email Varchar(128),
        firstname Varchar(128),
        user_id Int,
 Primary Key (contact_id)) ENGINE = MyISAM;

Create table contact_info_type (
        contact_info_type_id Int NOT NULL,
        display_label Varchar(128),
 Primary Key (contact_info_type_id)) ENGINE = MyISAM;

Create table contact_info (
        contact_id Int NOT NULL,
        contact_info_type_id Int NOT NULL,
        value Varchar(128),
        contact_info_id Int NOT NULL,
 Primary Key (contact_info_id)) ENGINE = MyISAM;

Alter table contact_info add Foreign Key (contact_id) references contacts 
(contact_id) on delete  restrict on update  restrict;
Alter table contact_info add Foreign Key (contact_info_type_id) references 
contact_info_type (contact_info_type_id) on delete  restrict on update  
restrict;






Reply via email to