2013-07-25 3 views
0

Я только начал изучать серверное программирование (PHP), и я хотел бы попытаться создать простую программу, которая использует базу данных MySQL для хранения данных некоторых пользователей (например, заметок). Я полный noob в базах данных, и я не знаю, как связать данные учетной записи (имя пользователя, пароль и т. Д.) С его данными.Очень простой дизайн базы данных (всего начинающий)

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

Спасибо.

+1

Хотя я уважаю вас, что вы новичок, вы получите лучшую помощь, если продемонстрируете базовое понимание или продемонстрируете, что вы пробовали, с конкретными вопросами. Как бы то ни было, этот вопрос слишком широк. –

ответ

0

Для простого применения примечаний вы должны создать две таблицы для хранения информации «пользователи» и «заметки». Затем в процессе вашего кода весь пользователь вводит и запрашивает его в этих таблицах. Обратите внимание, что в таблице «примечания» есть поле «user_id», в котором вы указываете заметки с полем «id» из таблицы «users» при выборе или вставке запросов.

Вот пример того, как должна выглядеть ваша база данных.

CREATE TABLE `users` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `username` varchar(255) NOT NULL, 
    `password` varchar(255) NOT NULL, 
    PRIMARY KEY(id) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

CREATE TABLE `notes` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `content` text NOT NULL, 
    `user_id` varchar(255) NOT NULL, 
    PRIMARY KEY(id) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

Этот сайт содержит много полезной информации, которая может помочь вам начать работу с PHP. Practical PHP Programming

+0

Вы также захотите узнать о таких вещах, как хэширование паролей и соли, потому что вы никогда не захотите хранить пароль в открытом виде.И тогда вы, вероятно, захотите просто использовать библиотеку аутентификации пользователей для PHP, чтобы вы не ошиблись и поставили под угрозу любую пользовательскую информацию на общедоступном веб-сайте :) – Bert

+0

Не хотите ли вы 'user_id' в' таблица примечаний должна быть 'int', а не' varchar'? – Bert

+0

Спасибо, что указали это, Берт. Я сделал опечатку. Убедитесь, что user_id является int (11) вместо varchar (255). –

0

Вы начинаете с изучения структуры ваших данных. В примере, который вы указали, если пользователь может иметь несколько заметок, вы должны создать таблицу пользователя и таблицу заметок. Каждый из них будет иметь индексированное (и уникальное) поле идентификатора. В таблице Note будет поле UserID, соответствующее ID в таблице User.

Вы должны действительно искать учебные руководства по вводным базам данных; опыт - это единственный способ, которым вы это сделаете.

0

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

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

Вы должны найти учебник по нормализации, наконец до 3NF (третья нормальная форма)

Основываясь на том, что вы сказали, что немного сбивает с толку

Одна таблица для хранения информации о пользователях, с по меньшей мере идентификатором пользователя . Затем другая связанная таблица (при условии, что пользователь может иметь более одной заметки). Вызывается UserNotes, по меньшей мере, с идентификатором NotesID и идентификатором пользователя.

Не может помочь больше, чем Google, учебник. Изучите только sql (первый уровень MySQls), прежде чем вы приблизитесь к PHP, есть множество учебных пособий по этому поводу. Ищите тот, который использует PDO.

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