2008-10-14 5 views
6

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

ответ

3

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

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

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

+0

спасибо за исправление орфографии. Мой английский ужасен .. я знаю :( – 2008-10-15 06:36:38

17

вы должны прочитать и понять основы 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)
+0

Отличный ответ чувак – jake 2008-10-25 18:43:32

1

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^