2012-06-16 3 views
-2

У меня есть проект Библии, и мне нужны некоторые материалы от экспертов, чтобы определить, что быстрее и эффективнее отображать результаты на странице.Какая более эффективная кодировка?

В моей библейской таблице всего 3 поля на данный момент? id, verse_code и verse_content.

Для меня, чтобы быть в состоянии отображать соответствующие Библии книги и стих в слове (. Ех Бытие 1: 1), я делаю включение случае заявление verse_code, что включает в себя 66 случаях что-то вроде ...

select (verse_code) 
{ 
case 1: echo "Genesis"; 
case 2: echo "Exodus"; 
... 
case 66: echo "Revelation"; 
} 

Я могу сохранить его таким образом, или я могу добавить новый столбец book_name и ввести название книги каждого соответствующего стиха. Это будет эквивалентно 31103 строкам.

Производительность, которая быстрее между этими двумя подходами. Должен ли я хранить свое заявление о том, должен ли я ввести имя книги для 31103 строк?

Тестовый код здесь. http://sandbox.littlegraffyx.com/bible/test.html, чтобы использовать его, попробуйте ввести Gen x: x где x - глава и стих и первые 3 буквы книги. Пример: Gen 1: 1 или 2: Exo 2

Текстовое поле находится в нижнем левом углу

Благодаря

+6

Используйте массив вместо корпуса коммутатора. – nhahtdh

+2

Попробуйте оба. Время их. –

+0

На каком языке вы используете? – twaddington

ответ

1

Лучше всего использовать справочную таблицу с вашими запросами, вы делаете туда и обратно в база данных в любом случае и для базы данных, соединяющих данные, как это то, что он предназначена для:

CREATE TABLE verses (verse_id INT PRIMARY KEY AUTO_INCREMENT,book_id INT NOT NULL, chapter INT NOT NULL,verse INT NOT NULL, verse_content TEXT NOT NULL, FOREIGN KEY(book_id) REFERENCES books(book_id)) ENGINE = InnoDB; 

CREATE TABLE books(book_id INT PRIMARY KEY AUTO_INCREMENT,book_name VARCHAR(100)) ENGINE = InnoDB; 

Здесь с таблицей стихов вы видите book_id поля, которое служит в качестве foreign key книг (так вы уверены, что ссылки на существующая книга) и что вы можете впредь использовать в запросе к join данных из стихов вместе с book_name из книг.

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

SELECT book_name,chapter,verse,verse_content FROM verses,books WHERE books.book_id = verses.book_id; 

Joins являются одним из тех великих концепций SQL, которые действительно Повысьте хватку над вашими данными, это blog post Джефф Этвуд даст вам хорошее и четкое представление о том, что они могут означать для вас. Я действительно рекомендую вам изучить его. :)

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

Вы хотите, чтобы люди изменили ваш исходный код, если вы делаете опечатку и называете ее Поттер вместо Питера, или будет безопаснее дать им хороший интерфейс вдали от вашего кода, чтобы они могли изменить его на Peter ?

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