Bonjour à tous,
Je souhaiterais votre avis sur les améliorations, erreurs, taille des champs texte et autres problèmes de conception de ma base de données mysql. Si vous pouviez m'aider à optimiser le tout ce serait vraiment sympa. Je me suis basé sur un modèle que vous pouvez voir à cette adresse http://www.databaseanswers.org/data_...logs/index.htm. Voici le dump que je viens d'effectuer sur ma table.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
-- phpMyAdmin SQL Dump
-- version 2.9.1.1
-- http://www.phpmyadmin.net
-- 
-- Serveur: localhost
-- Généré le : Mercredi 30 Juillet 2008 à 19:19
-- Version du serveur: 5.0.27
-- Version de PHP: 5.2.0
-- 
-- Base de données: `cmsproject`
-- 
 
-- --------------------------------------------------------
 
-- 
-- Structure de la table `attribute_definitions`
-- 
 
CREATE TABLE `attribute_definitions` (
  `attribute_id` int(10) unsigned NOT NULL auto_increment,
  `attribute_name` varchar(255) collate latin1_general_ci NOT NULL,
  `attribute_data_type` varchar(255) collate latin1_general_ci NOT NULL,
  `attribute_description` varchar(255) collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`attribute_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
 
-- --------------------------------------------------------
 
-- 
-- Structure de la table `catalog_contents`
-- 
 
CREATE TABLE `catalog_contents` (
  `catalog_entry_id` int(10) unsigned NOT NULL auto_increment,
  `catalog_level_number` int(10) NOT NULL,
  `parent_entry_id` int(10) NOT NULL,
  `previous_entry_id` int(10) NOT NULL,
  `next_entry_id` int(10) NOT NULL,
  `manufacturer` varchar(255) collate latin1_general_ci NOT NULL,
  `product_reference_number` varchar(255) collate latin1_general_ci NOT NULL,
  `product_description` varchar(255) collate latin1_general_ci NOT NULL,
  `photo_filename` varchar(255) collate latin1_general_ci NOT NULL,
  `catalog_entry_name` varchar(255) collate latin1_general_ci NOT NULL,
  `price_in_dollars` float(10,2) NOT NULL,
  `price_in_euros` float(10,2) NOT NULL,
  `price_in_pounds` float(10,2) NOT NULL,
  `capacity` float(10,3) NOT NULL,
  `length` float(10,3) NOT NULL,
  `height` float(10,3) NOT NULL,
  `width` float(10,3) NOT NULL,
  `other_details` varchar(255) collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`catalog_entry_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
 
-- --------------------------------------------------------
 
-- 
-- Structure de la table `catalog_contents_additional_attributes`
-- 
 
CREATE TABLE `catalog_contents_additional_attributes` (
  `catalog_entry_id` int(10) NOT NULL,
  `catalog_level_number` int(10) NOT NULL,
  `attribute_id` int(10) NOT NULL,
  `attribute_value` varchar(255) collate latin1_general_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
 
-- --------------------------------------------------------
 
-- 
-- Structure de la table `catalog_entry_definitions`
-- 
 
CREATE TABLE `catalog_entry_definitions` (
  `catalog_level_number` int(11) NOT NULL,
  `attribute_id` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
 
-- --------------------------------------------------------
 
-- 
-- Structure de la table `catalog_structure`
-- 
 
CREATE TABLE `catalog_structure` (
  `catalog_level_number` int(10) unsigned NOT NULL auto_increment,
  `catalog_id` int(10) unsigned NOT NULL,
  `catalog_level_name` varchar(255) collate latin1_general_ci NOT NULL,
  `catalog_level_description` varchar(255) collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`catalog_level_number`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
 
-- --------------------------------------------------------
 
-- 
-- Structure de la table `catalogs`
-- 
 
CREATE TABLE `catalogs` (
  `catalog_id` int(10) unsigned NOT NULL auto_increment,
  `catalog_name` varchar(255) collate latin1_general_ci NOT NULL,
  `catalog_publisher` varchar(255) collate latin1_general_ci NOT NULL,
  `catalog_description` varchar(255) collate latin1_general_ci NOT NULL,
  `date_of_publication` timestamp NOT NULL default '0000-00-00 00:00:00',
  `date_of_latest_revision` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  PRIMARY KEY  (`catalog_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
Pensez-vous que je doive réellement passer en InnoDB pour utiliser les Foreign Keys car je n'ai pas l'impression que ce soit indispensable. Quel que soit votre avis il est le bienvenu car je souhaiterais partir sur de bonnes bases pour le développement de mon projet sous PHP.

Merci d'avance.