Я никогда не создавал корзину покупок или форум в php. помимо просмотра и анализа проекта других лиц или просмотра учебников, которые показывают, как сделать такой проект или как быть таким проектом. как бы человек знал, как создать структуру базы данных, чтобы создать такую вещь? im, угадывая его, вероятно, путем проб и ошибок ...Как вы знаете, как создать базу данных mysql при создании расширенного приложения php?
ответ
Основная техника, которую вы можете узнать о дизайне базы данных, называется Database Normalization.
Нормализация базы данных имеет свои пределы, особенно если у вас много транзакций. В какой-то момент вы можете быть принуждены к Denormalize.
Но имхо всегда лучше начинать с нормализованного дизайна базы данных.
вы должны прочитать и понять основы normalization. для большинства проектов нормализация до 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-й стол, который позволяет нам понять связь между конкретным учеником, определенным классом, и классом, связанным с этим классом. из нашей первой исходной таблицы у нас теперь есть 3 таблицы в нормированной базе данных (предположим, что нам не нужно нормализовать оценки для примера :))
несколько вещей, которые мы можем извлечь из этого очень простого примера :
- наши данные привязаны к какому-либо ключу (student_id, class_id и student_id + class_id). это уникальные идентификаторы в каждой таблице.
- с нашими ключевыми отношениями, мы можем связать информацию друг с другом (сколько классов учатся в студенчестве # 4096?)
- мы можем видеть, что наши таблицы не будут содержать дублированные данные (подумайте о нашей первой таблице , где student_class может быть одним и тем же значением для многих учеников. Если бы нам пришлось изменить имя класса, нам нужно было бы обновить все записи. В нашем нормализованном формате мы можем просто обновить class_name класса_id)
Отличный ответ чувак – jake 2008-10-25 18:43:32
Я бы также рекомендовал использовать визуальный редактор для создания схемы базы данных. Я недавно использовал: http://dev.mysql.com/workbench/
После того как вы создали дизайн базы данных, попросите кого-нибудь, у кого больше опыта, взглянуть на него и дать вам обратную связь.Но знайте, что столько времени, сколько вы можете потратить на проектирование, вам в конечном итоге придется выполнить реализацию, и вы узнаете, что вам что-то не хватает или можете сделать еще лучшую работу, делая это по-другому.
Итак, спроектируйте, получите обратную связь, но не бойтесь меняться.
спасибо за исправление орфографии. Мой английский ужасен .. я знаю :( – 2008-10-15 06:36:38