Пока я проектирую базу данных MySQL для сайта знакомств, у меня возникли сомнения относительно того, как хранить ссылочные данные.В настоящее время база данных содержит 33 таблицы, и есть почти 32 различных поля, на которые нужно ссылаться.Мы также должны учитывать, что многие из этих элементов необходимо перевести.
После прочтения нескольких мнений я почти отказался от использования enum , например:
CREATE TABLE profile (
'user_id' INT NOT NULL,
...
'relationship_status' ENUM('Single','Married') NOT NULL,
...
);
И обычно я использую справочную таблицу , например:
CREATE TABLE profile (
'user_id' INT NOT NULL,
...
'relationship_status_id' INT NOT NULL,
...
);
CREATE TABLE relationship_status (
'id' INT NOT NULL,
'name' VARCHAR(45) NOT NULL,
PRIMARY KEY ('id')
);
Но создание 32 таблиц может оказаться слишком сложным, поэтому я рассматриваю кодирование в PHP вот так:
class RelationshipStatusLookUp{
const SINGLE = 1;
const MARRIED = 2;
public static function getLabel($status){
if($status == self::SINGLE)
return 'Single';
if($status == self::MARRIED)
return 'Married';
return false;
}
}
Что ты думаешь?Потому что, я думаю, это может улучшить производительность запросов, а также упростить разработку всего сайта.
Спасибо.