Я работаю над пользовательской социальной сетью. Я создаю сайт на PHP, и я хочу использовать базу данных MySQL для хранения пользовательских данных. Я могу создавать базы данных/таблицы без проблем (я использую phpMyAdmin) Я не уверен, сколько таблиц необходимо и что было бы более практичным для моего веб-приложения. Было бы разумно иметь много таблиц? Например, таблица USERS. С именами столбцов USER_ID, EMAIL, PASSWORD, LAST_LOGIN, а затем таблицей с именем USER_SETTINGS, которая будет содержать настройки учетной записи для каждого пользователя, а другая таблица с именем POSTS с именами и значениями, приписываемыми «обновлению статуса». Или разумно иметь все в одном столе? Какова наилучшая практика?Структурирование таблицы базы данных MySQL
ответ
Определенно НЕ держите «все в одном столе». Скорее всего, вы получите «много таблиц», но это звучит плохо - в основном, вы должны сегментировать свои данные на основе логического использования.
Например, если вы сохраняете сообщения в таблице пользователей - как это будет работать? Что произойдет, когда они сделают новый пост - добавили бы вы еще одно поле? (плохо) - или добавьте еще один элемент в поле и разделите его персонажем (плохим) ... и т. д. Единственный реальный способ сделать это - иметь другую таблицу. Вы должны определенно НЕ хранить сообщения в той же таблице, что и пользователи.
Что касается «данных профиля» (или того, что вы хотите назвать), мне нравится держать его отдельным - некоторым людям нравится держать его в таблице пользователей - там предпочтение отдается предпочтению.
В вашем случае, я хотел бы предложить что-то вроде этого:
//users table
id,
email,
password,
last_login,
//...
//profiles table
id,
user_id,
profile,
age,
gender,
//...
//posts table
id,
user_id,
data,
created (datetime),
modified (datetime)
Я в настоящее время здания сайта социальной сети, а также. НЕ ДЕЛАЙТЕ все в одном столе. На самом деле я бы зашел так далеко, чтобы сказать, что вы несете все в одной таблице, не сталкиваясь с массовыми проблемами.
В тех случаях, когда пользователи обеспокоены, мне нравится сохранять пароли в отдельной таблице со скрытым идентификатором пользователя. Сами данные профиля в зависимости от того, как вы хотите обеспечить целостность данных для проверки и вывода, могут включать таблицы, связанные с вашей таблицей пользователей.
Я бы также сохранил все посты в отдельной таблице. Это чисто из перспективы, которую вы можете запросить в соответствии с идентификатором пользователя, а затем ограничьте количество сообщений или сообщений, подходящих для того, что вы просматриваете. Проще говоря, иметь их в таблице пользователей - это как сказать, что вы - то, что вы пишете, а это вы, а не говорите, что вы отдельные, но связанные объекты.
- 1. базы данных структурирование таблицы
- 2. Структурирование базы данных MySQL
- 3. PHP/MySQL Структурирование таблицы/базы данных для использования профиля
- 4. Структурирование таблицы многоязычной базы данных словаря
- 5. Структурирование базы данных MySQL для информации пользователя
- 6. Структурирование базы данных
- 7. Структурирование базы данных рецептов
- 8. Структурирование базы данных Firebase
- 9. Структурирование данных пользователя в MySQL
- 10. Структурирование таблицы пользователей в mySQL
- 11. Базы данных MySQL/Таблицы
- 12. Структурирование базы данных ежедневных продаж
- 13. Структурирование и поиск базы данных SQL/таблицы для координат GPS
- 14. Структурирование базы данных с помощью SQLite
- 15. Структурирование базы данных для 'likes' или 'endorsements'
- 16. MySQL: неправильный запрос или плохое структурирование базы данных?
- 17. Создание таблицы базы данных (MySQL)
- 18. MySQL Создание таблицы базы данных
- 19. Дизайн таблицы базы данных Mysql
- 20. Структурирование таблицы MySQL (столбцы бесконечной суммы)
- 21. Структурирование многомерного профиля пользователя База данных mysql
- 22. Структурирование базы данных, которая подсчитывает похожие записи
- 23. Структурирование кода базы данных в NodeJS
- 24. Структурирование базы данных Postgres для подзапросов
- 25. Firebase, NoSQL, структурирование данных
- 26. MySQL: сложное структурирование и запрос данных
- 27. Структурирование MySQL-запроса эффективно
- 28. Структурирование «разреженной» таблицы данных + ORM (+ NoSQL?)
- 29. Как восстановить таблицы базы данных из базы данных MySQL
- 30. MySQL структурирование запроса
Взгляните на эти ссылки - http://www.devshed.com/c/a/MySQL/An-Introduction-to-Database-Normalization/ и http://goo.gl/m6KSX –
Сохраните структуру чистым и раздельным. Это означает, что у вас, вероятно, будет много таблиц. – Alp