Допустим, у вас есть база данных с одной таблицей, как ...Должен ли я использовать таблицу строк, чтобы сделать базу данных более эффективной?
---------------------------------------------
| Name | FavoriteFood |
---------------------------------------------
| Alice | Pizza |
| Mark | Sushi |
| Jack | Pizza |
---------------------------------------------
было бы больше пространства эффективного, чтобы иметь дополнительную таблицу под названием «Струна», который хранит строки и изменить столбец FavoriteFood Ань индекс в таблице строк. В приведенном выше примере «Пицца» выглядит так, будто она хранится дважды, но с дополнительной таблицей она хранится только один раз. Конечно, предположим, что есть 1 000 000 строк и 1000 уникальных строк вместо трех строк и 2 уникальных строк.
Редактировать: Мы не знаем, что такое FavoriteFoods заранее: они предоставляются пользователем. Программный интерфейс к таблице строк будет что-то вроде ...
String GetString(int ID) { return String at with Row-ID == ID }
int GetID(String s) {
if s exists, return row-id;
else {
Create new row;
return new row id;
}
}
Так строка стол кажется более эффективным, но современные базы данных уже делают это в фоновом режиме, так что я просто не могу сделать простую одну таблицы подход и быть эффективными?
Предполагая, что нет никаких дополнительных данных, связанных с продуктами питания (например, информация о питании), тогда его дизайн уже находится в 3NF. Не каждый бит повторяющихся данных должен быть целым числом, чтобы иметь нормализованную базу данных. –
@ Тайлер Мак-Хенри: Я не говорил, что это так, не так ли? Я делал вывод, что дизайн более важен, чем оптимизация проблемы производительности, которой у вас нет. –
Я бы сказал, что лучшая причина, чтобы пойти с ненормированными данными в этом случае, будет просто потому, что она вводит данные пользователя. Поэтому заставить их найти уже введенную строку в 1000 строк, которые уже введены, будет сложно. В любом случае вы будете иметь 6 разных вариантов каждой вещи, потому что пользователи захотят быть оригинальными и говорят, что им нравится пицца пепперони или пицца с сыром или пицца с 6 видами мяса. Несмотря на то, что Pizza хватило бы, вы получите 6 разных видов пиццы, так что в нормализации его не так уж и много. – Kibbee