2013-12-06 4 views
-1

Я «проектирую» таблицу mySql, и у меня есть 32 столбца, которые, я думаю, могут быть немного чересчур. Существует 9 числовых полей (int, tinyint, smallint), 17 varchar, 2 datetime, 4 Text. Вся строка находится в настройке utf8_unicode_ci.MySql db оптимизация количество столбцов в таблице

Это слишком много? Любой совет?

+2

Трудно сказать без имен столбцов и содержимого. –

+0

Некоторые из полей не имеют описательного названия, к сожалению, я на самом деле не создаю оригинальный проект. Я могу сказать, что существует 4 разных поля varchar для имени на 4 разных языках и то же самое для описания (Текст), 4 описания для 4-х языков. 4 поля tinyint для категорий (каждый элемент может принадлежать 4 различным категориям). – user1225730

+0

Что означает «слишком много»? Чего вы боитесь, что произойдет, добавив слишком много столбцов? Плохая производительность запросов? – dg99

ответ

1

-поля TinyInt предназначены для категорий (каждый элемент может принадлежать к 4-х различным категориям)

Это звучит как repeating groups. Это один недостаток в отношении дизайна реляционных баз данных.

То же самое относится к 4 наименованиям и 4 описаниям. У каждого отношения «один ко многим» должна быть подчиненная таблица.

Я не могу сказать из вашего описания, если есть другие части этой конструкции, которые не нормализованы.
Но я бы предположил, что есть.

Есть некоторые законные причины для нарушения правил нормализации, но, как и любая оптимизация, они должны быть сделаны для оптимизации конкретных запросов.

В случае отсутствия какого-либо контекста набора запросов, обратитесь к нормализованному дизайну, поскольку он оптимизирован для предотвращения избыточности данных и предотвращения аномалий и для поддержки самого широкого диапазона типов запросов.

Смежные вопросы