Встречайте Джимми. Он сделал свою новую жизненную цель, чтобы доказать, что шоколад - лучший аромат мороженого. Для этого он создал простую форму с переключателями и текстовое поле для имени, чтобы он мог отправить ссылку своим друзьям.
Он использует очень распространенную конфигурацию MySQL и PHP для сохранения представлений форм в таблице, которая выглядит так:
selection
является идентификатором вкуса. Ароматизаторы хранятся в массиве PHP, потому что он планирует использовать список предпочтений на будущих страницах:
$flavors = array(
1=>"Chocolate",
2=>"Cherry",
....
);
Форма была успешной, и его друзья начали просить Джимми добавить новые варианты, поэтому Джимми решил перейти на следующий уровень и добавить в форму страну, возраст, электронную почту и другие вещи, но на этот раз он сомневается в том, лучше ли добавлять имена аромата, страны, возрасты и другие статические данные в массивы или сохранять каждую из них в таблице базы данных, он знает, как делать соединения в запросах в любом случае.
Первый подход
будет означать наличие файла PHP со многими массивами и доступ к нему каждый раз, когда Джимми нуждается в названии аромата:$query = mysql_query("SELECT name, flavor FROM votes")
while($row = mysql_fetch_assoc($query)){
echo $row["name"]." - ".$flavors[$row["flavor"]];
}
Второй подход
будет означать наличие множества таблиц в базе данных и необходимость выполнять соединение каждый раз, когда ему потребуется такое имя:$query = mysql_query("SELECT name, flavor FROM votes LEFT JOIN flavors
WHERE votes.flavor = flavors.flavor");
while($row = mysql_fetch_assoc($query)){
echo $row["name"]." - ".$row["flavor"];
}
Несмотря на то, что, по-видимому, мало различий, это важное решение для Джимми, поскольку он хочет построить в будущем все больше и больше форм.
Как лучше всего Джимми обрабатывать статические данные, такие как имена вкуса, страны, возрастные группы и т.д., которые связаны с идентификаторами в базе данных?
Данные о состоянии окружающей среды:
- Массивы статичны и почти никогда не изменятся.
- Он будет использовать данные на нескольких страницах, поэтому жесткое кодирование не удобно.
- Добавление нового массива обычно быстрее
Заранее благодарим за помощь.