2013-08-16 3 views
0

Вопрос не нов, но у него есть небольшой поворот к нему. Моя страница - это страница членства, на которой пользователи ставят ставки. Моя идея - создать новую таблицу для пользователей (с соглашением об именах, например TABLE userBet + $ userid). Информация для входа в систему уже обрабатывается, моя цель - сохранить ставки пользователя в новой таблице. Таблица, создаваемая при регистрации пользователей. Это, надеюсь, упростит подсчет очков. Я прав или неправ? Можно ли это сделать лучше? (Все это делается в PHP, MySQL)Создание таблиц при регистрации в php

регистры пользователей -> Таблица для ставок получить создано

"CREATE Таблица $ USERID, id_bet, игры, результат, указывает"

А потом соответствие эта таблица против правильного результата?

Итак, снова мои вопросы: Это хороший способ сделать это? Является ли создание таблицы с userID полезной?

РЕДАКТИРОВАТЬ

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

+2

Изменение схемы при вводе пользователя настоятельно не рекомендуется. Просто запустите user_bets таблицу с user_id столбец –

+0

Если у меня есть таблица user_bets для каждой ставки, то у меня будет счет подсчета времени с трудом? или если это лучший способ, тогда мне нужно будет сделать это так :)? – Rocksteady

+0

Какой счет вы должны посчитать? Всего очков? :) 'SELECT SUM (points) FROM user_bets WHERE user_id = $ userID'. Это даст вам сумму баллов по данному идентификатору пользователя. Если у вас есть отдельная таблица, у вас будет 'SELECT SUM (points) FROM $ userID', который будет точно таким же, но запрашивает разные таблицы.Запрос различных таблиц даст вам время для кэширования результатов, если вы хотите использовать кеш запросов, также вы получите 10 000 таблиц в вашем баре, если у вас 10 000 пользователей. Ваш дБ будет тяжелым. –

ответ

1

проводок в ответ из-за просьбами автора:)

Предложенная схема базы данных:

стола matches:

id | name | 
--------------- 
1 | A vs B | 

стола user_bets

id | user_id | match_id | points | result | 
------------------------------------------- 
1 | X | 1  | Y | Z | 

Где match_id связан с matches. id

user_id = user.id

user_bets только одна таблица, содержащая всю информацию. Нет необходимости в отдельных таблицах, так как из комментариев было ясно, что неправильная практика заключается в изменении схемы db посредством ввода пользователем.

3

Я прав или неправильно?

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

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