Bonjour
J'ai besoin de votre aide afin d'optimiser cette table:
En fait , je voudrais qu'un contact puisse avoir plusieurs adresse mail, plusieurs numéro de téléphone ect.. mais sans avoir à mettre plusieurs champs contenant la même information dans ma table, comme je le fait ici par exemple ->Code:CREATE TABLE com_contact ( id INTEGER(11) NOT NULL DEFAULT '0', base_id INTEGER(11) NOT NULL DEFAULT '0', mod_date DATETIME DEFAULT NULL, mod_user_id INTEGER(11) NOT NULL DEFAULT '0', contact_label VARCHAR(255) NOT NULL DEFAULT '', contact_first_name VARCHAR(255) NOT NULL DEFAULT '', contact_last_name VARCHAR(255) NOT NULL DEFAULT '', contact_civility_code INTEGER(11) NOT NULL DEFAULT '0', contact_date DATETIME DEFAULT NULL, contact_source VARCHAR(255) NOT NULL DEFAULT '', contact_source_id INTEGER(11) NOT NULL DEFAULT '0', contact_company VARCHAR(255) NOT NULL DEFAULT '', contact_type_code INTEGER(11) NOT NULL DEFAULT '0', address TEXT COLLATE utf8_general_ci, address_zipcode VARCHAR(255) NOT NULL DEFAULT '', address_city VARCHAR(255) NOT NULL DEFAULT '', address_country VARCHAR(255) NOT NULL DEFAULT '', email_01 VARCHAR(255) NOT NULL DEFAULT '', email_01_label VARCHAR(255) NOT NULL DEFAULT '', email_02 VARCHAR(255) NOT NULL DEFAULT '', email_02_label VARCHAR(255) NOT NULL DEFAULT '', email_03 VARCHAR(255) NOT NULL DEFAULT '', email_03_label VARCHAR(255) NOT NULL DEFAULT '', phone_01 VARCHAR(255) NOT NULL DEFAULT '', phone_01_label VARCHAR(255) NOT NULL DEFAULT '', phone_01_sms TINYINT(4) NOT NULL DEFAULT '0', phone_01_fax TINYINT(4) NOT NULL DEFAULT '0', phone_02 VARCHAR(255) NOT NULL DEFAULT '', phone_02_label VARCHAR(255) NOT NULL DEFAULT '', phone_02_sms TINYINT(4) NOT NULL DEFAULT '0', phone_02_fax TINYINT(4) NOT NULL DEFAULT '0', phone_03 VARCHAR(255) NOT NULL DEFAULT '', phone_03_label VARCHAR(255) NOT NULL DEFAULT '', phone_03_sms TINYINT(4) NOT NULL DEFAULT '0', phone_03_fax TINYINT(4) NOT NULL DEFAULT '0', phone_04 VARCHAR(255) NOT NULL DEFAULT '', phone_04_label VARCHAR(255) NOT NULL DEFAULT '', phone_04_sms TINYINT(4) NOT NULL DEFAULT '0', phone_04_fax TINYINT(4) NOT NULL DEFAULT '0', phone_05 VARCHAR(255) NOT NULL DEFAULT '', phone_05_label VARCHAR(255) NOT NULL DEFAULT '', phone_05_sms TINYINT(4) NOT NULL DEFAULT '0', phone_05_fax TINYINT(4) NOT NULL DEFAULT '0', opt_in TINYINT(4) NOT NULL DEFAULT '0', contact_comment TEXT COLLATE utf8_general_ci, enable TINYINT(4) NOT NULL DEFAULT '1', deleted TINYINT(4) NOT NULL DEFAULT '0', PRIMARY KEY (base_id, id) )ENGINE=MyISAM ROW_FORMAT=FIXED CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; /* Crée une table numéro de téléphone bas_id, id, numéro et mettre dans la table com_contact une clé étrangére numéro de telephone*/
Je veut faire un peut comme avec gmail ou un contact peut avoir plusieurs adresse mail mais ca n'empêche pas de savoir que c'est le même contact. J'ai pensé a crée une table numéro_telephone, email ect... avec comme champs un identifiant de contact puis l'informations. Mais ca obligerait a faire des inserts pour les numéro de telephones, des autres inserts pour les emails, encore des autres pour les contacts ect... Je voudrais donc savoir si vous avez une meilleur idée?Code:email_01 VARCHAR(255) NOT NULL DEFAULT '', email_01_label VARCHAR(255) NOT NULL DEFAULT '', email_02 VARCHAR(255) NOT NULL DEFAULT '', email_02_label VARCHAR(255) NOT NULL DEFAULT '', email_03 VARCHAR(255) NOT NULL DEFAULT '', email_03_label VARCHAR(255) NOT NULL DEFAULT '',
Je sais que j'explique mal donc si vous avez des questions n’hésitez pas.
Merci d'avance pour vos propositions.
-----