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

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

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

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

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

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


1. на id_town (ID_T) вы PK навесили?
2. 2 FK, а не 1FK с двумя полями
...
Рейтинг: 0 / 0
Как поступить в этом случае в внешним ключем ?
    #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
Как поступить в этом случае в внешним ключем ?
    #34253151
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
# Darth Vader #Это ?
...
Рейтинг: 0 / 0
Как поступить в этом случае в внешним ключем ?
    #34253154
Фотография 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
Как поступить в этом случае в внешним ключем ?
    #34253155
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
# Darth Vader #имеется ввиду город проживания и город в котором родился.
Объясню попонятнее.
У России нет законодательного требования где-то быть прописанным или иметь регистрацию. Установлены только правила, в каких случаях необходимо быть зарегистрированным по месту жительства и/или пребывания. И то можно их смело нарушать, максимум что грозит - это административный штраф от участкового. И то если он сможет доказать факт наличия события и состава преступления, а это очень непросто.

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

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

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

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

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

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

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

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

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

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

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

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


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