|
|
|
Проблема со связью один ко многим
|
|||
|---|---|---|---|
|
#18+
Помогите решить проблему есть две таблицы: Оплата(с двойным ключем "№Оплат" , "Поставщик") и ПОСТАВКА(с двойным ключем "№Поставка" и "Поставщик") Связаны он по полям "№Оплат" и "Поставщик" Я получаю несколько поставок за месяц от одного поставщика, а счет на оплату получаю в конце месяца Каждую поставку я должен внести сразу в таблицу,но не могу этого сделать, так как № счета на оплату("№Оплат") будет известен только в конце месяца ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 19:28:45 |
|
||
|
Проблема со связью один ко многим
|
|||
|---|---|---|---|
|
#18+
Не надо делать связь по такому полю. Поле для связи пусть будет просто счетчик, а реальный номер пусть заносится в другое поле. (Оба поля на стороне "1".) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 19:52:55 |
|
||
|
Проблема со связью один ко многим
|
|||
|---|---|---|---|
|
#18+
Владимир СанычНе надо делать связь по такому полю. Поле для связи пусть будет просто счетчик, а реальный номер пусть заносится в другое поле. (Оба поля на стороне "1".) да, но как я потом найду все поставки, относящиеся к №накладной? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 20:26:10 |
|
||
|
Проблема со связью один ко многим
|
|||
|---|---|---|---|
|
#18+
alef120да, но как я потом найду все поставки, относящиеся к №накладной? До того как номер появился или после? До - никак. После - через связь между таблицами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 20:32:34 |
|
||
|
Проблема со связью один ко многим
|
|||
|---|---|---|---|
|
#18+
Владимир Саныч alef120да, но как я потом найду все поставки, относящиеся к №накладной? До того как номер появился или после? До - никак. После - через связь между таблицами. Что-то я не очень понимаю Поставок у меня много, а накладная(Оплата) одна Если я ставлю счетчик на "Оплата", то с чем мне его связать в "Поставка" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 20:47:03 |
|
||
|
Проблема со связью один ко многим
|
|||
|---|---|---|---|
|
#18+
Со специальным полем, через которое и пойдет связь. А поле с номером оплаты там не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 21:05:06 |
|
||
|
Проблема со связью один ко многим
|
|||
|---|---|---|---|
|
#18+
Владимир СанычСо специальным полем, через которое и пойдет связь. А поле с номером оплаты там не нужно. но тотогда получится связь один к одному? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 21:58:48 |
|
||
|
Проблема со связью один ко многим
|
|||
|---|---|---|---|
|
#18+
Почему??? Что, любая связь двух таблиц через поля - это один-к-одному??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 22:00:20 |
|
||
|
Проблема со связью один ко многим
|
|||
|---|---|---|---|
|
#18+
Владимир СанычСо специальным полем, через которое и пойдет связь. А поле с номером оплаты там не нужно. Объясни пожалуйста Если в тблОплата ключ Счетчик, то в связываемое поле тблПоставка я должен внести такой же номер, как и в счетчике, а откуда я его буду знать? Ведь сначала я заполняю тблПоставка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 22:25:51 |
|
||
|
Проблема со связью один ко многим
|
|||
|---|---|---|---|
|
#18+
Значит, надо с первой же поставкой, относящейся к определенной оплате, заносить запись в таблицу оплат. Хотя бы просто пустую запись, которая будет заполнена данными позже. Да иначе и нельзя, потому что при связи один-ко-многим нельзя заполнять таблицу на стороне "многие", пока нет соответствующей записи в таблице на стороне "один". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 22:38:14 |
|
||
|
Проблема со связью один ко многим
|
|||
|---|---|---|---|
|
#18+
Владимир СанычЗначит, надо с первой же поставкой, относящейся к определенной оплате, заносить запись в таблицу оплат. Хотя бы просто пустую запись, которая будет заполнена данными позже. Да иначе и нельзя, потому что при связи один-ко-многим нельзя заполнять таблицу на стороне "многие", пока нет соответствующей записи в таблице на стороне "один". Для этого мне не нужно добавлять поле Счетчик, я могу просто в поле №Оплат внести временный номер,а потом просто исправить его. Было бы все просто, если бы я получал счет стабильно 1-го числа но проблема в том , что иногда поставщики выписыват счет на каждую поставку, иногда за неделю , иногда за пол-года и я не знаю заранее. и если я вдруг получил два счета и хочу удалить лишнюю поставку ТОЛЬКО СО СЧЕТА, который я уже создал предварительно(т.е. разделить поставки на два счета), то запись удаляется и с тблПоставка Подскажи, как мне обойти эту прблему з.ы.Если не связывать таблицы, а работать только через VBA, то все работает,но хочется сделать ПРАВИЛЬНУЮ базу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 23:21:18 |
|
||
|
Проблема со связью один ко многим
|
|||
|---|---|---|---|
|
#18+
Заканчиваю на сегодня Надеюсь завтра получить ответ Саныч, особенно на тебя надеюсь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 23:27:06 |
|
||
|
Проблема со связью один ко многим
|
|||
|---|---|---|---|
|
#18+
alef120Для этого мне не нужно добавлять поле Счетчик, я могу просто в поле №Оплат внести временный номер,а потом просто исправить его. А вот это нарушение нормализации базы. Исправлять-то придется в нескольких местах (несколько записей в одной таблице и одна в другой). А по моему подходу - только в одной записи одной таблицы. alef120и если я вдруг получил два счета и хочу удалить лишнюю поставку ТОЛЬКО СО СЧЕТА, который я уже создал предварительно(т.е. разделить поставки на два счета), то запись удаляется и с тблПоставка Если надо стереть поставку, то надо стереть одну запись из таблицы поставок. Либо можно не стереть, а просто поменять в ней код оплаты (как бы отнести ее к другой оплате). Если при этом стирается еще что-то, значит просто где-то в программе баг. alef120з.ы.Если не связывать таблицы, а работать только через VBA, то все работает,но хочется сделать ПРАВИЛЬНУЮ базу Если задача сделать именно правильную, то делай так, как я сказал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 23:31:45 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32873457&tid=1669185]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
78ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 324ms |

| 0 / 0 |
