откуда вы знаете, как проектировать базу данных MySQL при создании расширенного приложения PHP?

StackOverflow https://stackoverflow.com/questions/200257

  •  03-07-2019
  •  | 
  •  

Вопрос

Я никогда не создавал корзину или форум на PHP.помимо просмотра и анализа проектов других людей или просмотра руководств, в которых показано, как создать такой проект или как быть таким проектом.откуда человеку знать, как спроектировать структуру базы данных для создания такой вещи?Я предполагаю, что это, вероятно, методом проб и ошибок...

Это было полезно?

Решение

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

Нормализация базы данных имеет свои ограничения, особенно если у вас много транзакций.В какой-то момент вас могут заставить Денормализовать.

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

Другие советы

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

вот очень простой пример нормализации таблицы:

students
  student_id
  student_name
  student_class
  student_grade

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

students
  student_id
  student_name

class
  class_id
  class_name

это неплохо, теперь мы видим, что у нас разные ученики и разные классы, но мы не фиксировали оценки учеников.

grades
  student_id
  class_id
  grade

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

несколько вещей, которые мы можем почерпнуть из этого очень простого примера:

  • все наши данные привязаны к некоторому ключу (student_id, class_id и Student_id + class_id).это уникальные идентификаторы внутри каждой таблицы.
  • с помощью наших ключевых отношений мы можем связывать информацию друг с другом (в скольких классах учится студент № 4096?)
  • мы видим, что наши таблицы теперь не будут содержать повторяющиеся данные (подумайте о нашей первой таблице, где Student_class может иметь одно и то же значение для многих студентов.если бы нам пришлось изменить имя класса, нам пришлось бы обновить все записи.в нашем нормализованном формате мы можем просто обновить имя_класса для идентификатора_класса)

Я бы также рекомендовал использовать визуальный редактор для создания схемы базы данных.Недавно я использовал: http://dev.mysql.com/workbench/

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

Итак, проектируйте, получайте обратную связь, но не бойтесь меняться.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top