2012-02-22 2 views
1

Обратите внимание, что я ноб в дизайне базы данных, поскольку я никогда этого не делал.MySQL Database Schema - Общие вопросы

У меня есть веб-сайт, созданный для онлайн-игры, созданной на Java. Когда игрок выходит из игры, я добавляю строку (или обновляю строку, если она уже существует) в таблице с именем «рекорды» в базе данных с именем «рекорды» ...

У меня есть рекорды на моем веб-сайте, который использует php, чтобы извлекать данные из таблицы рекордов и организовывать их в таблицу html, чтобы игроки могли видеть их оценки, и все отлично работает. У меня также есть форумы на моем сайте, установив fluxBB (система форума) и изменив его по своему вкусу.

Так что в моем PHPMyAdmin, у меня есть в общей сложности 5 баз данных: information_schema, performance_schema, MySQL, Рекорды и форумы. Первые три базы данных были добавлены, когда я установил phpmyadmin, и я не коснулся их. форумы база данных, которую я сделал при установке форумов; он запросил базу данных для создания таблиц, поэтому я создал новую базу данных для ввода всех таблиц.

Так у меня есть несколько вопросов ...

  1. Настроен ли моя база данных до того, как типичный веб-сайт будет делать это? Если нет, то как на типичном веб-сайте с рекордами & в форумах будут созданы свои базы данных? У них есть одна база данных для своего сайта, а затем одна база данных для их игры?

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

  3. Если я хочу добавить опрос на свой сайт, могу ли я создать новую базу данных под названием «poll»? Или мне нужна база данных, называемая «веб-сайтом», где я бы поместил все связанные с веб-сайтом данные? Но у меня есть база данных «форумов», и что мне с этим делать?

  4. Как обычно публикуют новости в Интернете? Если статья хранится в базе данных, как они публикуют новости, чтобы они отображались на главной странице? И будет ли тогда база данных новостей?

Это трудно найти общие вопросы в Интернете ... Я пытался искать, но, пожалуйста, не только мне ссылку на статью, потому что это, вероятно, не подходит к моей ситуации.

Заранее спасибо.

+0

Возможно, вы должны задать каждый вопрос отдельно. Вы скорее получите ответ. – jcubic

ответ

0

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

Думаете, вы не укажете здесь, вот как вы держите рекорды? Связаны ли они с таблицей пользователей, пользователем форума или просто поле имени в таблице рекордов?

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

  2. Статистика, как и большинство пользователей онлайн, и количество учетных записей не будут сохранены в базе данных, так как это создаст ненужные и избыточные вызовы DBMS, что не является оптимальным. Скорее всего, они будут созданы «на лету» или даже лучше, используя задание cron, и создадут кэшированную статистику, которая будет показана пользователю, даже если это число составляет пару минут.

  3. Снова имея базу данных website, вы должны были бы создать дополнительные таблицы по мере необходимости внутри базы данных website и оставить базу данных forums как есть.

  4. Большинство сайтов, которые вы увидите, будет иметь центральную базу данных, которая будет иметь несколько таблиц, т.е. users, news, comments, reviews и т.д.

Схема новостей таблица может быть в виде:

id    int auto_increment & primary key 
title   varchar(*) 
content  text or big varchar according to your needs 
posted_on  datetime or timestamp 
posted_by  int key representing the authors id 

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

Кроме того, вам будет очень интересно узнать, как другая структура их баз данных и что можно легко сделать, проверив некоторые из проектов с открытым исходным кодом, доступные в Интернете, например, joomla, wordpress и другие. Когда вы начнете оглядываться, все будет намного легче.

+0

Строки в таблице рекордов имеют имя игрока + 36 баллов. Таким образом, в каждой строке содержится 37 значений. Форумы отделены от игры (им нужно зарегистрироваться снова), и я не против этого. Я не знаю, как получить статистику с моего сервера для отображения на веб-сайте, если я не храню его в базе данных: S В моей игре есть сервер и клиент, сделанные на Java. Когда сервер работает, люди могут присоединиться к клиенту. Сервер может получить количество людей в Интернете, но как я могу получить, что это значение отображается на веб-сайте, не сохраняя его сначала в базе данных? – user1226792

+0

Если я понял, что у вас есть таблица с рекордами с 'username'' game1score'' game2score' ...? Для статистики я бы не использовал базу данных для простых чисел, подобных этим, которые постоянно меняются и отображаются много раз. Вы даже можете сохранить это в простом текстовом файле 'text' или' XML' – Kypros

+0

Да, именно так настроены мои рекорды. Я думаю, что у меня есть все свои ответы сейчас, и я попробую настроить его для хранения и чтения статистики из текстового файла. Спасибо за вашу помощь. – user1226792

0

Позвольте мне попытаться сделать это в следующем порядке:

  1. Там нет такого понятия, как типичный веб-сайт Есть программные пакеты, которые были разработаны, чтобы использовать определенную схему, и это то, что они используют. Настройка зависит от необходимости, это может быть 1 база данных с несколькими таблицами или несколько баз данных.
  2. Вам нужно будет иметь таблицу где-нибудь, которая отслеживает включение и выключение ваших пользователей, а также даты начала работы для определенных учетных записей. Если вы по какой-то причине отделяете форумы и рекорды, я предлагаю вам также отделить управление пользователями.
  3. Зависит от вашей реализации. Если вы используете чужой продукт, у вас может быть определенная вами база данных или не определена вообще, как только отображается на вашем сайте, а также данные, которые будут храниться в другом месте.
  4. Я даже не уверен, что вы имеете в виду. Когда новости хранятся, они могут храниться в базе данных, и в этом случае текст извлекается для статьи и отформатируется для отображения, или может быть файлом на сервере и на основе идентификатора и информации о ссылках, хранящихся в базе данных, и вашего сценария просто извлекает и отображает его.

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

+0

Спасибо. То, что я подразумевал под вопросом 4, - это если веб-сайт извлекает статьи из базы данных, а затем добавлять новости на веб-сайт, который вы вручную переходите в базу данных и добавляете строку в новостной статье? Это не кажется правильным. – user1226792

+0

Почему это звучит не так? Если вы думаете об этом, то статья представляет собой не что иное, как «текст», может быть, «varchar» для названия, «datetime» для 'post_time',' int' для 'user_id', и это может быть легко сохранен в строке с уникальным id ofcourse – Kypros

+0

Хорошо: S это просто кажется странным, входящим в phpmyadmin и вставляющим строку, чтобы сделать новость? Я подумывал о создании форума под названием «Новости», и когда тема была сделана там от администратора, на первой странице появляется сообщение и помещается на первую страницу. – user1226792

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