Премини към съдържанието

Препоръчан отговор


Здравейте, имам проблем с една База Данни, която искам да направя като практика.
Значи едеята е следната искам да направя БД за Компютърни игри, в кои магазини се продават и поръчки.

Имам таблица за Игри със следното съдържание                                       
GameID число ключ
GameName string

Имам таблица за Магазин със следното съдържание
StoreID число ключ
GameID число 
StoreName string

Така описана таблицата каква трябва да е връзката  между таблиците Игри и Магазин ? Значи тази таблица я написах в Microsoft Access и автоматично ми даде "едно към много". И сега примерно ако искам да опиша всичките игри в даден магазин  трябва да направя примерно магазин "Витоша" и искам да кажа, че има 10 различни игри които се продават там, трябва да направя 10 реда което става 10 различни StoreID-та само за един и също магазин и в GameID слагам различните ID-та според игрите които има магазина. Това нормално ли е? има ли по-добър вариант? Защото на мен не ми изглежда правилно

StoreID: 111                         StoreID:112                             StoreID: 113                          
GameID: 111                        GameID: 115                          GameID: 122
StoreName: Витоша            StoreName: Витоша               StoreName: Витоша


 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

преди 12 минути, NerdyBurdy написа:

Здравейте, имам проблем с една База Данни, която искам да направя като практика.
Значи едеята е следната искам да направя БД за Компютърни игри, в кои магазини се продават и поръчки.

Имам таблица за Игри със следното съдържание                                       
GameID число ключ
GameName string

Имам таблица за Магазин със следното съдържание
StoreID число ключ
GameID число 
StoreName string

Така описана таблицата каква трябва да е връзката  между таблиците Игри и Магазин ? Значи тази таблица я написах в Microsoft Access и автоматично ми даде "едно към много". И сега примерно ако искам да опиша всичките игри в даден магазин  трябва да направя примерно магазин "Витоша" и искам да кажа, че има 10 различни игри които се продават там, трябва да направя 10 реда което става 10 различни StoreID-та само за един и също магазин и в GameID слагам различните ID-та според игрите които има магазина. Това нормално ли е? има ли по-добър вариант? Защото на мен не ми изглежда правилно

StoreID: 111                         StoreID:112                             StoreID: 113                          
GameID: 111                        GameID: 115                          GameID: 122
StoreName: Витоша            StoreName: Витоша               StoreName: Витоша


 

Да, нормално е. А за по-добро - зависи какво искате да постигнете, в някои случаи една широка и дълбока таблица може да е решение за агрегиращи функции

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Поправете ме ако греша, но за мен е по-добре чуждия ключ да е в таблицата Игри. Така при добавяне на нова игра няма да се налага добавяне и на нов ред в таблицата Магазин. 

Тоест Игри да е: GameID, StoreID, GameName, а Магазин: StoreID, StoreName.

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 3 минути, Mr.Robot написа:

Поправете ме ако греша, но за мен е по-добре чуждия ключ да е в таблицата Игри. Така при добавяне на нова игра няма да се налага добавяне и на нов ред в таблицата Магазин. 

Тоест Игри да е: GameID, StoreID, GameName, а Магазин: StoreID, StoreName.

Равносилно е, така и така в едната ще имате повече редове. А от логическа гледна точка игрите са нещо единично. Докато магазина "съдържа" в себе си много игри, заради това си мисля че таблицата магазини трябва да е по-дълбка

П.П. И добавянето на нова игра ще добави нов ред в таблица магазини. Или при вашето предложение в таблица игри. Същото е :)

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Прав сте, когато съм писал коментара не съм допуснал, че една игра може да я има в няколко магазина.


  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Добре при таблица Orders със следното съдържание
OrdersID Число, Ключ
StoreID Число, Връзка със таблицата Магазини
GameID Число, Връзка със таблицата Игри
BuyDate Дата

Няма ли да стават грешки примерно има поръчка от магазин Витоша и са купили играта с GameID:111, обаче тъй като има много StoreID-та с име на магазина "Витоша" мога да взема редът на който GameID-то(GameID от таблицата  на магазина) не съвпада с GameID:111.

Пример, в таблицата Orders записвам, че е купена игра с ID:111 от магазин Витоша гледам, че имам StoreID:112  където, като име на Магазина е записано "Витоша", само че във GameID: е записано 112 а не 111. Няма ли да е грешка?

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 46 минути, NerdyBurdy написа:

Добре при таблица Orders със следното съдържание
OrdersID Число, Ключ
StoreID Число, Връзка със таблицата Магазини
GameID Число, Връзка със таблицата Игри
BuyDate Дата

Няма ли да стават грешки примерно има поръчка от магазин Витоша и са купили играта с GameID:111, обаче тъй като има много StoreID-та с име на магазина "Витоша" мога да взема редът на който GameID-то(GameID от таблицата  на магазина) не съвпада с GameID:111.

Пример, в таблицата Orders записвам, че е купена игра с ID:111 от магазин Витоша гледам, че имам StoreID:112  където, като име на Магазина е записано "Витоша", само че във GameID: е записано 112 а не 111. Няма ли да е грешка?

Ще е, но в такъв ще направите двойна релация на ордера с магазин (ид на магазина и гейм ид)

  • Харесва ми 2

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.