Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как поступить в этом случае в внешним ключем ? / 21 сообщений из 21, страница 1 из 1
12.01.2007, 00:35
    #34250333
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поступить в этом случае в внешним ключем ?
Есть таблица Data где хранятся данные о людях, есть таблица с айдишниками городов

id_town - числовой
NameTown - текстовый

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

как поступить в таком случае, чтобы в таблице Data были внешние ключи для указания айдишников городов где родился и где фактически проживает?
...
Рейтинг: 0 / 0
12.01.2007, 00:36
    #34250334
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поступить в этом случае в внешним ключем ?
ах да база в акесе (mdb)
...
Рейтинг: 0 / 0
12.01.2007, 01:46
    #34250376
Как поступить в этом случае в внешним ключем ?
А чего тут думать. Два варианта
- две ссылки в основной таблице
- кросс таблица ид человека + ид города + признак

Если не планируется изменение (например появится третий город где учился), то можно и первым вариантом ограничится.
...
Рейтинг: 0 / 0
12.01.2007, 01:47
    #34250378
RastaCat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поступить в этом случае в внешним ключем ?
ну, так вроде ж решение очевидно:
в таблице Data сделать два поля (где родился и где проживает), и оба эти поля пусть смотрят на таблицу городов.
...
Рейтинг: 0 / 0
12.01.2007, 08:53
    #34250590
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поступить в этом случае в внешним ключем ?
тогда целостность на уровне БД не сделать если два поля в табл Дата сделать, руками придется шлепать записи и апдейтить ... :(((
...
Рейтинг: 0 / 0
12.01.2007, 10:45
    #34250867
Как поступить в этом случае в внешним ключем ?
# Darth Vader #тогда целостность на уровне БД не сделать если два поля в табл Дата сделать, руками придется шлепать записи и апдейтить ... :(((
С какой это стати?!
...
Рейтинг: 0 / 0
12.01.2007, 11:46
    #34251095
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поступить в этом случае в внешним ключем ?
ну таблица Data два FK ID_T1 и ID_T1
таблица Town поле ID_T

вяжу , делаю две связи, акес ругается что типо фиг Вам а не целостность !
...
Рейтинг: 0 / 0
12.01.2007, 11:57
    #34251144
Сергей Васкецов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поступить в этом случае в внешним ключем ?
Человек может проживать более чем в 2-х городах. Причем даже одновременно.
...
Рейтинг: 0 / 0
12.01.2007, 12:01
    #34251155
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поступить в этом случае в внешним ключем ?
имеется ввиду город проживания и город в котором родился.
...
Рейтинг: 0 / 0
12.01.2007, 14:44
    #34251887
KGP
KGP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поступить в этом случае в внешним ключем ?
# Darth Vader #ну таблица Data два FK ID_T1 и ID_T1
таблица Town поле ID_T


1. на id_town (ID_T) вы PK навесили?
2. 2 FK, а не 1FK с двумя полями
...
Рейтинг: 0 / 0
13.01.2007, 01:24
    #34253145
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поступить в этом случае в внешним ключем ?
KGP # Darth Vader #ну таблица Data два FK ID_T1 и ID_T1
таблица Town поле ID_T


1. на id_town (ID_T) вы PK навесили?
2. 2 FK, а не 1FK с двумя полями

по 1. Да
по 2 , ????

я не врублюсь , две таблицы что ли наваять где будут внешние ключи .

Если такие проектанты хорошие , не то что я , то покажите конкретную структуру таблиц , чтобы работала целостность данных , чтобы в одной таблице были данные о городах , айди , название города , в другой таблице (фиг знает как) вязалось это внешними ключами, чтобы для человека можно было указать два числовых значение (внешниз ключа) города где он родился и где он проживает.
...
Рейтинг: 0 / 0
13.01.2007, 01:52
    #34253151
ChA
ChA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поступить в этом случае в внешним ключем ?
# Darth Vader #Это ?
...
Рейтинг: 0 / 0
13.01.2007, 01:58
    #34253154
ChA
ChA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поступить в этом случае в внешним ключем ?
Если да, то что-то вроде
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE TABLE [dbo].[City] (
	[ID] [int] IDENTITY ( 1 ,  1 ) NOT NULL CONSTRAINT [CityPK] PRIMARY KEY,
	[Name] [varchar] ( 50 ) NOT NULL CONSTRAINT [CityAK] UNIQUE
)

CREATE TABLE [dbo].[Data] (
	[ID] [int] IDENTITY ( 1 ,  1 ) NOT NULL CONSTRAINT [DataPK] PRIMARY KEY,
	[FIO] [varchar] ( 50 ) NOT NULL CONSTRAINT [DataAK] UNIQUE,
	[CityBorn] [int] NULL CONSTRAINT [DataCityBornFK] REFERENCES [dbo].[City] ([ID]),
	[CityLive] [int] NOT NULL CONSTRAINT [DataCityLiveFK] REFERENCES [dbo].[City] ([ID])
) ON [PRIMARY]
...
Рейтинг: 0 / 0
13.01.2007, 02:08
    #34253155
Сергей Васкецов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поступить в этом случае в внешним ключем ?
# Darth Vader #имеется ввиду город проживания и город в котором родился.
Объясню попонятнее.
У России нет законодательного требования где-то быть прописанным или иметь регистрацию. Установлены только правила, в каких случаях необходимо быть зарегистрированным по месту жительства и/или пребывания. И то можно их смело нарушать, максимум что грозит - это административный штраф от участкового. И то если он сможет доказать факт наличия события и состава преступления, а это очень непросто.

Потому спокойно можно вообще не иметь прописки и регистрации, жить по неделе у родственников в разных городах по очереди (Москва, Мытищи, Долгопрудный, и т.п.) и не иметь вообще никаких проблем.

Тем страннее, кстати, выглядит обязательность поля города проживания.

Потому лучше сделать отдельную табличку с 1 ссылкой на юзеров, с 1 ссылкой на города и с 2-мя датами (начала и конца).
...
Рейтинг: 0 / 0
13.01.2007, 02:17
    #34253160
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поступить в этом случае в внешним ключем ?
ругается долбаный акцесс , ваш пример на скуле, там есть вроде отличия при вязке и др...

при попытке повязать второй вн ключ ругань
...
Рейтинг: 0 / 0
13.01.2007, 02:21
    #34253162
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поступить в этом случае в внешним ключем ?
Сергей Васкецов # Darth Vader #имеется ввиду город проживания и город в котором родился.
Объясню попонятнее.
У России нет законодательного требования где-то быть прописанным или иметь регистрацию. Установлены только правила, в каких случаях необходимо быть зарегистрированным по месту жительства и/или пребывания. И то можно их смело нарушать, максимум что грозит - это административный штраф от участкового. И то если он сможет доказать факт наличия события и состава преступления, а это очень непросто.

Потому спокойно можно вообще не иметь прописки и регистрации, жить по неделе у родственников в разных городах по очереди (Москва, Мытищи, Долгопрудный, и т.п.) и не иметь вообще никаких проблем.

Тем страннее, кстати, выглядит обязательность поля города проживания.

Потому лучше сделать отдельную табличку с 1 ссылкой на юзеров, с 1 ссылкой на города и с 2-мя датами (начала и конца).

Это всё хорошо конечно, но задача стоит фиксировать в БД и тот город и тот, что я поделаю если это надо делать , а не философствовать , я сначала было подумал что это нельзя реализовать с поддержкой целостности , руками потом удалять и апдейтить, но ребята подсказали что можно , но вот где это "можно" я в подзорную трубу не вижу .
...
Рейтинг: 0 / 0
13.01.2007, 10:36
    #34253274
Peter_VP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поступить в этом случае в внешним ключем ?
На мой взгляд, наиболее оптимальный вариант с использованием третьей таблицы перекрестных ссылок (о чём упоминалось выше). MS Access создание связей с ограничением целостности поддерживает.
...
Рейтинг: 0 / 0
13.01.2007, 17:20
    #34253546
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поступить в этом случае в внешним ключем ?
Спасибо , чтобы реализовать это через многие ко многим с помощи дополн таблицы я сразу подумал , но тогда в одной записи не получить сведений о городах где родился и проживает .

если это сделать так , то придется ввести что то дополнительное чтобы в перекрестной таблице отличать два указанных для клиента города между собой, на данный момент просто ввел новое поле логическое Born и если указаывается город в котором родился клиента то ставим флаг в него.
...
Рейтинг: 0 / 0
14.01.2007, 07:50
    #34253934
VladRUS.ca
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поступить в этом случае в внешним ключем ?
# Darth Vader #ругается долбаный акцесс , ваш пример на скуле, там есть вроде отличия при вязке и др...

при попытке повязать второй вн ключ ругань
В акцессе одту и туже таблицу можно использовать несколько раз:
...
Рейтинг: 0 / 0
15.01.2007, 10:54
    #34254951
KGP
KGP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поступить в этом случае в внешним ключем ?
# Darth Vader #
KGP
2. 2 FK, а не 1FK с двумя полями
по 2 , ????
я не врублюсь ...
Если такие проектанты хорошие , не то что я , то покажите

1. Оставьте понты и гонор
2. Посмотрите, что надо делать 2 FK ключа по одному полю, а не 1 ключ по двум полям
...
Рейтинг: 0 / 0
15.01.2007, 15:41
    #34256116
Бодрый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поступить в этом случае в внешним ключем ?
Сергей Васкецовможно вообще не иметь прописки и регистрации, жить по неделе у родственников в разных городах по очереди (Москва, Мытищи, Долгопрудный, и т.п.) и не иметь вообще никаких проблем.

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


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