С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
15 / 15 / 8
Регистрация: 14.01.2013
Сообщений: 545
Записей в блоге: 2
1

Как лучше организовать такую структуру базы данных?

04.09.2013, 21:04. Показов 1432. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, как лучше организовать такую структуру базы данных, есть имя пользователя для этого пользователя группы таблиц в бд.
Допустим есть пользователь
updaite
Таблица пользователя updaite 1
Таблица пользователя updaite 2
Таблица пользователя updaite 3
Таблица пользователя updaite 4
и т.д.

На ум приходит такое, создавать для каждого пользователя свою бд и в эту бд заносить данные пользователя по таблицам, есть ли вариант по проще? Чтобы можно к одному пользователю несколько таблиц привязать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.09.2013, 21:04
Ответы с готовыми решениями:

Скопировать структуру базы данных в новую базу данных без самих данных
Здравствуйте! Подскажите пожалуйста, как более удобно скопировать всю базу данных в новую базу...

Организовать выборку из базы данных
всех с наступившим новым годом 2013 всем удачи и новых достижений подскажите пожалуйста как...

Создать структуру базы данных
Доброе времени суток! Нуждаюсь в помощи, т.к. с таким не сталкивался.. Да и новичок я еще. Есть...

Как организовать структуру приложения
Всем доброго времени суток. У меня есть MS Sql сервер. Там в БД есть таблицы: Abiturient -...

18
113 / 70 / 2
Регистрация: 31.07.2010
Сообщений: 337
04.09.2013, 21:09 2
Казнить. Забросать книжками по СУБД досмерти. Только это на ум приходит.
0
15 / 15 / 8
Регистрация: 14.01.2013
Сообщений: 545
Записей в блоге: 2
04.09.2013, 21:12  [ТС] 3
В принципе можно делать так, имя таблицы это имя пользователя, а в таблице делать метки, для различия данных, но это тоже как то не красиво, и запутанно.

Добавлено через 1 минуту
Цитата Сообщение от nubo Посмотреть сообщение
Казнить. Забросать книжками по СУБД досмерти. Только это на ум приходит.
Тема не для литературы.
0
113 / 70 / 2
Регистрация: 31.07.2010
Сообщений: 337
04.09.2013, 21:17 4
Как раз для литературы получается. Если сейчас начинать все рассказывать, нужно прямо с азов. Вот книжка и получится, а вы говорите...

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

Но это трудно усвоить, пока вы не понимаете даже принципа построения реляционных БД.
0
15 / 15 / 8
Регистрация: 14.01.2013
Сообщений: 545
Записей в блоге: 2
04.09.2013, 21:21  [ТС] 5
Цитата Сообщение от nubo Посмотреть сообщение
Как раз для литературы получается. Если сейчас начинать все рассказывать, нужно прямо с азов. Вот книжка и получится, а вы говорите...

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

Но это трудно усвоить, пока вы не понимаете даже принципа построения реляционных БД.
Я знаю, это мне не подходит, поэтому я и тему создал.
Для каждого пользователя своя настройка и свои таблицы, есть пользователь к нему нужно прикрепить отдельные таблицы, пользователь + таблицы разных конфигураций.

P.S Я хотел что бы путаницы не было, как вы предложили это верно, но запутаться можно, тем более бд планировалась динамическая, и не известно сколько будет таблиц у пользователя.
0
113 / 70 / 2
Регистрация: 31.07.2010
Сообщений: 337
04.09.2013, 21:23 6
Цитата Сообщение от updaite Посмотреть сообщение
это мне не подходит, поэтому я и тему создал.
Это всем подходит.

Цитата Сообщение от updaite Посмотреть сообщение
Для каждого пользователя своя настройка и свои таблицы,
Создавть таблицы для каждого пользователя, это даже не смешно.
0
15 / 15 / 8
Регистрация: 14.01.2013
Сообщений: 545
Записей в блоге: 2
04.09.2013, 21:40  [ТС] 7
Цитата Сообщение от nubo Посмотреть сообщение
Это всем подходит.
Товарищ я же вам объяснил Русскими буквами, в Русской раскладки, Русским языком, что мне это не подходит, вы вынуждаете меня дать вам билет на самолет прямым рейсом на йух, вас человек попросил, а вы мне тут свою корректуру под нос суете.

Добавлено через 9 минут
Извините, за мою грубость.
0
9 / 9 / 4
Регистрация: 04.08.2013
Сообщений: 161
04.09.2013, 21:49 8
Всуну свои 5 копеек...

nubo, прав.

updaite, допустим у вас будет 1000 пользователей, и посещаемость несколько тысяч чел в сутки. Вот вы представьте себе для каждого юзвера создавать таблицу и тем более БД . ЭТО будет мягко говоря ЖЕПА. 1000таблиц для пользователей))))) даже смешно говорить))).

Создайте 2 таблицы.
1- для описания пользователя., а 2 - для параметров.
В первой таблице создайте поле для параметра, укажите id параметра из 2й таблицы.
Также присвойте уникальный индекс для этого поля и все.
В нете полно примеров... Если не найдете пишите, помогу чем смогу. Хотя сомневаюсь что ненайдете...
0
KOPOJI
04.09.2013, 22:21
  #9

Не по теме:

Цитата Сообщение от paha444 Посмотреть сообщение
допустим у вас будет 1000 пользователей, и посещаемость несколько тысяч чел в сутки. Вот вы представьте себе для каждого юзвера создавать таблицу и тем более БД . ЭТО будет мягко говоря ЖЕПА. 1000таблиц для пользователей))))) даже смешно говорить))).
однако иногда это все же используется (не новичками), даже есть плагины, под вордпресс, например (название не помню)

0
9 / 9 / 4
Регистрация: 04.08.2013
Сообщений: 161
04.09.2013, 22:24 10
Цитата Сообщение от KOPOJI Посмотреть сообщение

Не по теме:


однако иногда это все же используется (не новичками), даже есть плагины, под вордпресс, например (название не помню)

Но наверно там БД используются в основном для записи. Или как?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
04.09.2013, 22:28 11
Просто представьте, как организован хостинг, где на одном "компе" и IP-шнике может быть несколько совершенно различных сайтов (и достаточно много). Это несколько не то, но некоторая часть этого там есть.
0
113 / 70 / 2
Регистрация: 31.07.2010
Сообщений: 337
04.09.2013, 22:31 12
Цитата Сообщение от KOPOJI Посмотреть сообщение
однако иногда это все же используется (не новичками), даже есть плагины, под вордпресс, например (название не помню)
Ой как хочется взглянуть. Может я упустил чего...

Добавлено через 3 минуты
Цитата Сообщение от paha444 Посмотреть сообщение
допустим у вас будет 1000 пользователей
Тысячу я еще могу себе представить. А вот 32 тысячи как то...
А особенно на шареде. Кстати, многие хостеры не дают привилегий на CREATE TABLE
0
9 / 9 / 4
Регистрация: 04.08.2013
Сообщений: 161
04.09.2013, 22:38 13
Цитата Сообщение от KOPOJI Посмотреть сообщение
Просто представьте, как организован хостинг, где на одном "компе" и IP-шнике может быть несколько совершенно различных сайтов (и достаточно много). Это несколько не то, но некоторая часть этого там есть.
Я думаю там совсем другая история, там тоже реляционные БД со связями, и каждому пользователю дается своя БД которая полюбому прописывается гдето в основной БД.
А вот создавать по БД на простом сайте для каждого юзера это БОРОДА)))

Добавлено через 5 минут
Цитата Сообщение от nubo Посмотреть сообщение
Ой как хочется взглянуть. Может я упустил чего...

Добавлено через 3 минуты
Тысячу я еще могу себе представить. А вот 32 тысячи как то...
А особенно на шареде. Кстати, многие хостеры не дают привилегий на CREATE TABLE
Та даже 1000 таблиц уже заметно начнет тормозить все.

Хотел бы я посмотреть какой хостер даст создавать просто так больше 10 БД. По любому надо будет раскошелиться для такого удовольствия))))))))
0
KOPOJI
04.09.2013, 22:39
  #14

Не по теме:

если вспомню, как оно называется, и найду, то дам ссылку :)

0
15 / 15 / 8
Регистрация: 14.01.2013
Сообщений: 545
Записей в блоге: 2
05.09.2013, 14:25  [ТС] 15
Рассматриваю вариант почти как предложил nubo
Создаю две таблички user, user_bd
Табличка unser
Поле1: Id
Поле2: user_name
Поле3: user_pass
Поле4: user_new_id
Поле5: user_end_id

Все данные пользователей идут в одну табличку user_bd, а диапазоны информации пользователей идут в user, в поле user_new_id начало диапазона, user_end_id конец диапазона.
Пример
Поле1: Id = 1
Поле2: user_name = user
Поле3: user_pass = pass
Поле4: user_new_id = 20
Поле5: user_end_id = 80

20 - начало данных пользователя в табличке user_bd, 80 - конец данных.
Если пользователь внесет или удалит данные, придется каждый раз сортировать базу, насколько правильное решение?

Добавлено через 16 минут
Либо делать стандартным образом, что не удобно для меня)
0
113 / 70 / 2
Регистрация: 31.07.2010
Сообщений: 337
05.09.2013, 14:29 16
Совершенно неверное решение. Нужно просто связать записи. Добавить во вторую таблицу поле id_parent и помещать в неё ID юзера. Тогда никких диапазонов не нужно. Да и невозможно это в силу особенностей автоинкремента.
1
9 / 9 / 4
Регистрация: 04.08.2013
Сообщений: 161
05.09.2013, 14:30 17
Цитата Сообщение от updaite Посмотреть сообщение
Рассматриваю вариант почти как предложил nubo
Создаю две таблички user, user_bd
Табличка unser
Поле1: Id
Поле2: user_name
Поле3: user_pass
Поле4: user_new_id
Поле5: user_end_id

Все данные пользователей идут в одну табличку user_bd, а диапазоны информации пользователей идут в user, в поле user_new_id начало диапазона, user_end_id конец диапазона.
Пример
Поле1: Id = 1
Поле2: user_name = user
Поле3: user_pass = pass
Поле4: user_new_id = 20
Поле5: user_end_id = 80

20 - начало данных пользователя в табличке user_bd, 80 - конец данных.
Если пользователь внесет или удалит данные, придется каждый раз сортировать базу, насколько правильное решение?

Добавлено через 16 минут
Либо делать стандартным образом, что не удобно для меня)
0
113 / 70 / 2
Регистрация: 31.07.2010
Сообщений: 337
05.09.2013, 14:34 18
Цитата Сообщение от updaite Посмотреть сообщение
Поле4: user_new_id = 20
Поле5: user_end_id = 80
Если свойства первичны, значит поле нужно в первой таблице добавить.
А лучше сделать связующую таблицу. Тогда можно прыгать туда-сюда.
1
15 / 15 / 8
Регистрация: 14.01.2013
Сообщений: 545
Записей в блоге: 2
05.09.2013, 14:49  [ТС] 19
Всем спасибо, разобрался.

Добавлено через 7 минут
Еще вопрос как сделать динамические поля? В таблицы допусти у пользователя один полей 5, у пользователя 2 шесть полей.

Добавлено через 7 минут
Потому что не известно какие параметры выберет пользователь, в зависимости от параметров и создаются таблички, в принципе можно проверять поле на ноль в таблички, каждого пользователя.
0
05.09.2013, 14:49
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.09.2013, 14:49
Помогаю со студенческими работами здесь

Как организовать структуру пользователей?
Здравствуйте, как организовать структуру пользователей? Есть 3 вида пользователей: админ,...

К-кратный цикл: как организовать такую структуру?
Как организовать такую структуру?(или заменить другой) Число K вводится пользователем. ... for...

Как лучше организовать структуру БД
Добрый день. Работаю над разработкой программы для кинологического клуба (к слову сказать - и...

Как лучше организовать структуру?
Добрый вечер, поскажите как правильнее решить такую задачку, думал 2 дня а ничего толкового не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru