Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

PostgreSQL

Войти
Регистрация
Восстановить пароль
 
 
lordik55
3 / 3 / 0
Регистрация: 28.07.2012
Сообщений: 148
#1

Создание бд - PostgreSQL

26.11.2016, 17:09. Просмотров 1056. Ответов 39
Метки нет (Все метки)

Привет уважаемые форумчане, надеюсь получить хоть малую помощь в реализации моей задумки. Думаю тапками не закидаете. В общем подошла пора писать курсовую по базам данных, четкого тз нету, тему можно выбирать произвольную.
На примете у меня уже давно был один сайт, howlongtobeat.com. Я так понимаю, что такой сайт без бд невозможен, поэтому задумался идеей сваять нечто подобное. Реализация нужна только схем бд (без клиент-серверного приложения) Не могли бы Вы пожалуйста немного подсказать возможно ли это. И дать пару наставлений по проектированию? Выручайте други и подруги
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2016, 17:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание бд (PostgreSQL):

Создать базу данных с(Создание функции БД, Создание процедуры БД, Создание тригера БД) - Программирование Android
В задание для курсовой работы по БД входят вот такие пункты: 1.2 Создание функции БД. 1.3 Создание процедуры БД 1.4 Создание...

Server 2003 Хочу освоить и применить на практике создание локальной сети, создание домена - Windows Server
Доброго времени суток. Господа, на днях начал осваиваю win server 2003. Хочу освоить и применить на практике создание локальной сети,...

Создание БД учет заявок на доступ к информационным ресурсам: создание отчетов - MS Access
Доброго времени суток. Это всего вторая моя попытка что-то наваять в MS Access, сильно не пинайте. Задача: сделать БД по учету...

Создание кода из строк или создание произвольного количества объектов - Java ME
Привет сообществу. Возник такой вопрос: Мне в мидлете необходимо создать некоторое количество StringItem, заранее неизвестное, то бишь...

Создание базы данных на лету, создание и заполнение таблиц в базе DB (Paradox? или..). - C#
Здравствуйте Профи! --- Видел я "простенькую" (exe-шник небольшого размера, запускается сразу, без предварительной установки)...

Создание формулы и последующее заполнение таблицы, избежание повторов информации, создание интерфейса - MS Access
Не люблю просить о помощи, но, к сожалению, сроки поджимают и не позволяют подробно ознакомиться с профессиональной литературой по MS...

39
abrdabr
Заблокирован
26.11.2016, 17:17 #2
lordik55, вообщето возможно,- нет доступа ко всему массиву едениц товара. те достаочно только набора хтмл страниц.
ну и вопрос то в чём реализовать реализацию примитивного шопа?
бери реализацию библиотек (книг) тем более что решений хватает
0
lordik55
3 / 3 / 0
Регистрация: 28.07.2012
Сообщений: 148
26.11.2016, 19:26  [ТС] #3
Цитата Сообщение от abrdabr Посмотреть сообщение
ну и вопрос то в чём реализовать реализацию примитивного шопа?
бери реализацию библиотек (книг) тем более что решений хватает
Вопросов в общем-то несколько. Сколько должно получится таблиц (в среднем), сложность реализации, ну и пара вопросов про связывание таблиц.
Тему создал в данном разделе, т.к делать надо в PgAdmin III (postgresql)
0
lordik55
3 / 3 / 0
Регистрация: 28.07.2012
Сообщений: 148
27.11.2016, 18:12  [ТС] #4
В общем сегодня собрался с мыслями и сел за это дело.
Накидал за пару часов вот такие схемы, но что-то подсказывает мне, что оно не работает правильно.
Запутался если честно. Кто поможет разобраться где я накосячил малость.

p.s и да, пока делаю в mysql
0
Миниатюры
Создание бд  
grgdvo
570 / 508 / 148
Регистрация: 02.09.2012
Сообщений: 1,495
27.11.2016, 23:17 #5
Цитата Сообщение от lordik55 Посмотреть сообщение
Кто поможет разобраться где я накосячил малость.
1. Платформы и жанры вынести в отдельные таблицы и связать с этой "длинной"
2. Пол игрока тип set для postgresql не естественный. Сюда как раз enum подойдет, если вы пол именно так хотите хранить. Достаточно и bool.
3. У вас игроки никак не связаны с играми. "Liked", "Played" .... все имеют тип varchar. Что вы этим хотели сказать??

Цитата Сообщение от lordik55 Посмотреть сообщение
пока делаю в mysql
Тогда вам в другой раздел
0
lordik55
3 / 3 / 0
Регистрация: 28.07.2012
Сообщений: 148
27.11.2016, 23:37  [ТС] #6
Насчёт вопроса 3 остановимся подробнее, вот тут мне нужна помощь в том, как это реализовать. Под всем этим я имел ввиду то, что например у пользователя (зарегистрированного на сайте) будет место с его информацией: ну например, список любимых игр (Liked), список игр, которые он ждет (Waiting), ну и так далее. Потому пока не знаю как связать эту информацию.
По поводу остального я понял, огромное спасибо за ответ. Буду делать так.
Сегодня я конечно знатно упоролся пока это все делал
0
grgdvo
570 / 508 / 148
Регистрация: 02.09.2012
Сообщений: 1,495
28.11.2016, 01:49 #7
Цитата Сообщение от lordik55 Посмотреть сообщение
Потому пока не знаю как связать эту информацию.
В классической теории проектирования баз данных такую схему, которую вы делаете, называют "схема сущность-связь" (ER-diagram).
Как вы понимаете, сущность в конце-концов представляется таблицей, а связь представляется дополнительным ограничением на связанные поля таблицы.
Если абстрагироваться от конкретной предметной области, то видов связей (отношений) между сущностями может быть всего три: один-к-одному, один-ко-многим, многие-ко-многим (там где один, может быть и ноль, но это отдельная тема).

В вашем случае связь "Игрок-Игра" - это многие-ко-многим. А именно, "одному игроку может нравится много игр" в то же время "одна игра нравится сразу многим игрокам". Связь двух сущностей вида многие-ко-многим реализуется через дополнительную таблицу, связывающую по ключам эти сущности. Конкретное наполнение этой таблицы зависит от многих факторов, учитывающих особенности "предметной области". Возможно эта таблица могла бы иметь свой первичный ключ, а ключи связываемых таблиц были бы внешними ключами. Возможно эта таблица могла бы образовывать первичный ключ из ключей связываемых таблиц.... В общем, я вам дал список понятий и почву для размышлений. Ищите литературу по проектированию баз данных, смотрите примеры как реализуется.
0
lordik55
3 / 3 / 0
Регистрация: 28.07.2012
Сообщений: 148
28.11.2016, 15:13  [ТС] #8
В общем все сделал как было сказано и если честно больше начинаю путаться со всей этой структурой БД.
Сейчас схема выглядит следующим образом (файл во вложении).

Но уже сам понимаю, что таблица gamesforusers сделана неправильно. Есть какие-то идеи, в каком направлении двигаться дальше.
0
Миниатюры
Создание бд  
grgdvo
570 / 508 / 148
Регистрация: 02.09.2012
Сообщений: 1,495
28.11.2016, 16:13 #9
по моим скромным представлениям
1) gamesforusers убрать.
2) в usergames добавить какое-нибудь поле "Type"
3) добавить таблицу usergamestype (type_id, type_name) и связать type_id с "Type" в usergames.

Если мы теперь заполним таблицу usergamestype, например, так
type_id type_name
1 'Liked'
2 'Played'
3 'Completed'
4 'Playing'
5 'Waiting'

то тогда в таблице usergames записи вида, например,
idUsers idGames Type
10 12 2
10 12 3
10 15 5

будут означать, что некий игрок 10 играл и прошел игру 12 и ждет выхода игры 15
0
lordik55
3 / 3 / 0
Регистрация: 28.07.2012
Сообщений: 148
28.11.2016, 19:56  [ТС] #10
grgdvo, огромное вам спасибо за содействие и помощь.
На данный момент схема БД выглядит следующим образом.

Даже не знаю, где ещё чего стоит подправить.
Хотел вынести Жанры и Платформы в отдельные таблицы, но тогда не понимаю, как их надо будет заполнять.
Ещё не совсем ясна такая информация, например, мне надо найти информацию о играх, которые на русском языке, но они же имеют и англоязычные (и другие) языки. Как тут быть? Собственно касаемо этого такая же проблема поиска по Жанру и Платформе.
0
Миниатюры
Создание бд  
grgdvo
570 / 508 / 148
Регистрация: 02.09.2012
Сообщений: 1,495
29.11.2016, 14:49 #11
Цитата Сообщение от lordik55 Посмотреть сообщение
Хотел вынести Жанры и Платформы в отдельные таблицы, но тогда не понимаю, как их надо будет заполнять.
Да, надо выносить. Сделать аналогично usergametype (в данном случае это называется приведением к 2НФ - второй нормальной форме; советую почитать. Для новичков нормальные формы часто воспринимаются сложной мутью, но в конце-концов пригождаются).
Цитата Сообщение от lordik55 Посмотреть сообщение
Ещё не совсем ясна такая информация, например, мне надо найти информацию о играх, которые на русском языке, но они же имеют и англоязычные (и другие) языки.
Ну вот вы подошли к следующему уровню проектирования баз данных, вы стали задумываться о том, как должна выглядеть схема базы данных при определенных условиях использования этой базы данных.
Если речь идет о частых текстовых запросах на разных языках и предполагается, что язык текста запроса будет известен заранее, то можно все строки свести в одну таблицу и добавить атрибуты языка и вида текстовой информации (название игры, жанр, платформа....)
Например, таблица textdata
textdata_id lang_id datakind data_value
153 1 1 'Мир танков'
154 2 1 'World of tanks'
155 1 2 'Стрелялка'
156 2 2 'Action'
157 1 2 'Многопользовательская'
158 2 2 'Multiplayer'
Тогда вместо реальных текстовых строк у вас будут идентификаторы на текстовые данные и дополнительно нужно будет добавить таблицу для хранения дополнительных имен игры, а также жанров, платформ и т.п.
На текстовые данные надо будет поставить индекс, включающий выборку по языку и типу этой текстовой информации для быстрого поиска названий, жанров и пр.

Кратко и запутанно??!, но вы спрашивайте, спрашивайте.
0
lordik55
3 / 3 / 0
Регистрация: 28.07.2012
Сообщений: 148
29.11.2016, 15:45  [ТС] #12
Цитата Сообщение от grgdvo Посмотреть сообщение
Да, надо выносить. Сделать аналогично usergametype
Даже если сделаю аналогично тому примеру, то как пользователь сможет внести эту информацию? Он же по0сути будет заполнять таблицу Games а в ней нету таких полей.

Даа, а вот что вы написали потом неясно что-то
0
Grossmeister
Модератор
3175 / 2273 / 355
Регистрация: 21.01.2011
Сообщений: 10,157
29.11.2016, 15:51 #13
Цитата Сообщение от lordik55 Посмотреть сообщение
Он же по0сути будет заполнять таблицу Games а в ней нету таких полей
То, что пользователи видят на экране и то, что хранится в БД, обычно отличается (иногда довольно сильно). SQL наше все
0
grgdvo
570 / 508 / 148
Регистрация: 02.09.2012
Сообщений: 1,495
29.11.2016, 15:52 #14
У меня сейчас нет возможности что-то нарисовать, просто нет софта под рукой.
Писать много текста - нет смысла.
Может чуть позже смогу, завтра, например.
0
lordik55
3 / 3 / 0
Регистрация: 28.07.2012
Сообщений: 148
29.11.2016, 15:55  [ТС] #15
Цитата Сообщение от Grossmeister Посмотреть сообщение
То, что пользователи видят на экране и то, что хранится в БД, обычно отличается (иногда довольно сильно). SQL наше все
Т.е если эти таблицы (Games, Genre и Platform) будут связаны, то пользователь получит при вводе данных доступ к тем таблицам таким образом? Или как оно работает?
0
29.11.2016, 15:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2016, 15:55
Привет! Вот еще темы с ответами:

Создание источника данных, создание серверных страниц и выбор WEB-сервера и его установка - Web
на практике попросили сделать задание. 1)Создание источника данных 2)Создание серверных страниц 3)Выбор WEB-сервера и его установка ...

Создание экземпляра БД (создание собственно базы данных) - Oracle
Добрый день. Подскажите пожалуйста, я пытаюсь установить Oracle Database 11g Release 2. Следую этой инструкцией...

Файлы. Создание и размещение небольшого текста, создание двух дочерних процессов, вывод результи- рующего файла на экран - C Linux
Помогите пожалуйста с программой. Разработайте программу, выполняющую: 1) создание файла и размещение в нем небольшого текста; 2)...

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru