Измените свой код на то, как получить записи
, используя поиск и получение, отличается: разница поиска и получения в Eloquent
Также вам нужно получить первые элементы пакета
public function showPackageItems($id)
{
$package = Package::with('packageitems')
->where('id', '=', $id)
->get();
return view('admin.packages.show')->with('package', $package);
}
1 нФ является самым основным из нормальных форм - каждая ячейка в таблице должна содержать только одну информацию, и не может быть никаких дублирующихся строк.
2 нФ и 3 нФ - все о том, чтобы быть зависящим от первичного ключа. Вспомните, что первичный ключ может быть составлен из нескольких столбцов. Поскольку Chris сказал в своем ответе:
Данные зависят от ключа [1 нФ], целый ключ [2 нФ] и только ключевые [3 нФ] (поэтому помогите мне Codd).
Скажите, что у Вас есть таблица, содержащая курсы, которые взяты в определенный семестр, и у Вас есть следующие данные:
|-----Primary Key----| uh oh |
V
CourseID | SemesterID | #Places | Course Name |
------------------------------------------------|
IT101 | 2009-1 | 100 | Programming |
IT101 | 2009-2 | 100 | Programming |
IT102 | 2009-1 | 200 | Databases |
IT102 | 2010-1 | 150 | Databases |
IT103 | 2009-2 | 120 | Web Design |
Это не находится в 2 нФ, потому что четвертый столбец не полагается на весь ключ - но только часть его. Имя курса зависит от идентификатора Курса, но не имеет никакого отношения, какой семестр это принято. Таким образом, как Вы видите, у нас есть дублирующаяся информация - несколько строк, говоря нам, что IT101 программирует, и IT102 являются Базы данных. Таким образом, мы фиксируем это путем перемещения имени курса в другую таблицу, где CourseID является ВСЕМ ключом.
Primary Key |
CourseID | Course Name |
---------------------------|
IT101 | Programming |
IT102 | Databases |
IT103 | Web Design |
Никакое дублирование!
Хорошо, так скажем, мы также добавляем имя учителя курса и некоторые детали о них, в RDBMS:
|-----Primary Key----| uh oh |
V
Course | Semester | #Places | TeacherID | TeacherName |
---------------------------------------------------------------|
IT101 | 2009-1 | 100 | 332 | Mr Jones |
IT101 | 2009-2 | 100 | 332 | Mr Jones |
IT102 | 2009-1 | 200 | 495 | Mr Bentley |
IT102 | 2010-1 | 150 | 332 | Mr Jones |
IT103 | 2009-2 | 120 | 242 | Mrs Smith |
Теперь, надо надеяться, должно быть очевидно, что TeacherName зависит от TeacherID - таким образом, это не находится в 3 нФ. Для фиксации этого мы делаем почти такой же, как мы сделали в 2 нФ - вынимают поле TeacherName из этой таблицы и вставляют его его собственное, которое имеет TeacherID как ключ.
Primary Key |
TeacherID | TeacherName |
---------------------------|
332 | Mr Jones |
495 | Mr Bentley |
242 | Mrs Smith |
Никакое дублирование!!
Одна важная вещь помнить состоит в том, что, если что-то не находится в 1 нФ, это не находится в 2 нФ или 3 нФ также. Таким образом, каждая дополнительная Нормальная форма требует всего, что более низкие нормальные формы имели плюс некоторые дополнительные условия, которые должны все быть выполнены.
У меня никогда не было хорошей памяти для точной формулировки, но в моем классе базы данных я думаю, что преподаватель всегда говорил что-то как:
Данные зависят от ключа [1 нФ], целый ключ [2 нФ] и только ключ [3 нФ].
Вот быстрый, по общему признанию забитый ответ, но в предложении:
1 нФ: Ваша таблица организована как незаказанный набор данных, и нет никаких повторяющихся столбцов.
2 нФ: Вы не повторяете данные в одном столбце Вашей таблицы из-за другого столбца.
3 нФ: Каждый столбец в Вашей таблице имеет отношение только к ключу Вашей таблицы - у Вас не было бы столбца в таблице, которая описывает другой столбец в Вашей таблице, которая не является ключом.
Для большего количества детали посмотрите Википедию...