Pourrais-je avoir quelques opinions sur cette structure de table MySQL s'il vous plaît?
La quantité de champs varchar
est-elle incorrecte? Y a-t-il de meilleures alternatives?MySQL Table Structure
Le type de données devrait être assez explicite.
CREATE TABLE `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`active` bit(1) NOT NULL DEFAULT b'1',
`email` varchar(64) NOT NULL,
`password` char(128) NOT NULL,
`forename` varchar(32) NOT NULL,
`surname` varchar(32) NOT NULL,
`ip` int(10) unsigned NOT NULL,
`address` varchar(32) NOT NULL,
`address_2` varchar(32) DEFAULT NULL,
`city` varchar(32) NOT NULL,
`county` varchar(32) NOT NULL,
`postcode` varchar(16) NOT NULL,
`country` char(2) NOT NULL,
`country_other` varchar(16) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `email` (`email`),
KEY `password` (`password`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
Merci!
Est-il possible que les gens aient plus d'une adresse? Vous pourriez penser à normaliser un peu plus et à diviser les adresses dans une table séparée. En termes de nombre de champs varchar, il n'y a rien de mal avec eux. Je ne sais pas pourquoi votre champ IP est un Int. pourrait vouloir en faire un varchar (15) – Sage
@Sage - J'allais stocker IP en utilisant la fonction 'INET_ATON()', d'où l'entier non signé. Non, jamais possible qu'il y aura plus d'une adresse. – chigley
ahh, plutôt cool. Je n'avais pas vu cette fonction auparavant. Quelque chose appris – Sage