Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вопрос по структуре БД. / 8 сообщений из 8, страница 1 из 1
15.03.2005, 03:07
    #32959898
DDespot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре БД.
Имеються четыре сущьности:
1. Тип игры.
2. Типы результатов.
3. Игра.
4. Результаты.

Описание:
Типы результатов описывают какие результаты могут быть в данном типе игры.
Игра имет тип игры.
В игре могу быть результаты только того типа которые присутствуют в типах результатов данного типа игры.

Как реализовать БД правильно?
Придумали два таких варианта:
изображены на схемах.(прикреплённый файл всего 10кило) Какая из них вернее? или может какой другой вариант?
Во втором случае придёться ещё писать check чтобы нельзя было добавить в игру результаты из другого типа. В первом же всё рулиться базой. Но обилие FK настораживает. И не очень нравиться.
...
Рейтинг: 0 / 0
15.03.2005, 10:20
    #32960143
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре БД.
IMHO,первый. Ну и что, что много ключей?Во втором их кстати столько же, только слишком много атрибутов мигрирует. Почитайте статью про естественные и искусственные ключи.
...
Рейтинг: 0 / 0
15.03.2005, 10:21
    #32960147
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре БД.
сорри, перепутал, второй
...
Рейтинг: 0 / 0
15.03.2005, 14:30
    #32960928
olol
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре БД.
Согласен с Shtock правда перевертыш с вариантами немного сбивает...
И как видно, не только меня одного... :)
...
Рейтинг: 0 / 0
15.03.2005, 22:49
    #32962014
DDespot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре БД.
ShtockIMHO,первый. Ну и что, что много ключей?Во втором их кстати столько же, только слишком много атрибутов мигрирует. Почитайте статью про естественные и искусственные ключи.
Спасибо. Понял.
И такой вот вопрос:
Стоит ли в базе написать чеки тчобы она проверяла чтобы не добовлялись результаты в одну из разных типов игр.
Или рулить это исключительно программой?
Просто как я понимают если написать чеки то база каждый раз будет их проверять и тратиться производительность.
А с другой стороны хотелось бы побольше гарантий, что в данных не будет коллизий.
...
Рейтинг: 0 / 0
16.03.2005, 07:08
    #32962116
olol
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре БД.
DDespotСтоит ли в базе написать чеки тчобы она проверяла чтобы не добовлялись результаты в одну из разных типов игр.
Или рулить это исключительно программой?
И то и другое...
Прога при занесении предлагать будет только нужные типы, а чек гарантирует
их соответствие...
А на производительность это отразится, если ты будеш загружать внешние данные сотнями тысяч...
...
Рейтинг: 0 / 0
16.03.2005, 08:01
    #32962134
olol
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре БД.
В принципе, проверку можно делать не в чеке – а в триггерах на BEFORE INSERT и BEFORE UPDATE... и там исключить лишние селекты…


CREATE TRIGGER tibResult FOR Result
ACTIVE BEFORE INSERT POSITION 0
AS DECLARE VARIABLE type_game_id INTEGER;
BEGIN
IF (old.type_result_id = new.type_result_id AND old.game_id = new.game_id)
THEN type_game_id = type_game_id; /* Ничего не изменилось */
ELSE ... /* Делаем селекты и проверяем */
END
...
Рейтинг: 0 / 0
17.03.2005, 07:57
    #32964821
DDespot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по структуре БД.
ololВ принципе, проверку можно делать не в чеке – а в триггерах на BEFORE INSERT и BEFORE UPDATE... и там исключить лишние селекты…


CREATE TRIGGER tibResult FOR Result
ACTIVE BEFORE INSERT POSITION 0
AS DECLARE VARIABLE type_game_id INTEGER;
BEGIN
IF (old.type_result_id = new.type_result_id AND old.game_id = new.game_id)
THEN type_game_id = type_game_id; /* Ничего не изменилось */
ELSE ... /* Делаем селекты и проверяем */
END

О возможно так и сделаем. Спасибо.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вопрос по структуре БД. / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]