Как вы знаете, как создать базу данных MySQL при создании расширенного приложения PHP? - PullRequest
6 голосов
/ 14 октября 2008

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

Ответы [ 3 ]

17 голосов
/ 14 октября 2008

Вы должны прочитать и понять основы нормализации . для большинства проектов нормализация до 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 может быть одинаковым значением для многих студентов. Если бы нам пришлось изменить имя класса, нам пришлось бы обновить все записи в нашем нормализованном формате мы можем просто обновить имя_класса_класса класса)
3 голосов
/ 14 октября 2008

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

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

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

1 голос
/ 17 октября 2008

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...