Member 14000611 Ответов: 2

Нужна консультация о том, где установить связь таблиц в моем приложении для управления запасами


Существует база данных MS Access, которую я планирую использовать для хранения своих данных инвентаризации. Я пытаюсь построить Ан vb.net приложение и я путаюсь в том, где указать табличное отношение, так как есть некоторая связь между продуктом-категорией-подкатегорией так-то и так-то..

Как я вижу, есть два способа сделать это: первый-сделать это в самом MS Access, а второй-в наборе данных в Visual studio. Проблема в том, что я не знаю, какой из них был бы разумным выбором, поскольку я новичок vb.net-да.

Может ли кто-нибудь дать мне совет по этому вопросу?

Что я уже пробовал:

Я попробовал настроить его в обоих местах и, похоже, работает, но все еще не уверен, что это правильный метод.

2 Ответов

Рейтинг:
9

OriginalGriff

Если вы имеете в виду отношения внешних ключей, то лучшее место находится в БД, потому что тогда она может обеспечить ссылочную целостность - причудливый способ сказать: "убедитесь, что все dtaa действительны"

При установлении связи внешнего ключа между двумя таблицами база данных будет обеспечивать ссылочную целостность для вас:
Счета-фактуры

ID, Date, Customer, Total

InvoiceLines
ID, InvoiceID as Foreign Key to Invoices.ID, Product, Quantity, PricePerItem
Таким образом, у вас есть много линий выставления счетов на один счет, что вы и ожидали бы.
БД запретит вам добавлять строку InvoiceLine, если только у InvoiceID нет соответствующей строки в таблице Invoices, и запретит вам удалять строку в таблице Invoices, пока в таблице InvoiceLines существует любая строка, которая ссылается на нее: ссылочная целостность гарантирована.

Вы можете сделать это в своем коде, да, но всегда есть шанс, что однажды вы что - то пропустите, и когда это произойдет, это станет настоящей питой для исправления ваших данных, потому что вы в конечном итоге получите плавающие данные, которые вы уже не знаете, с чем они связаны.


OriginalGriff

Это в значительной степени то, что означает "... тогда лучшее место-в БД..."! :смеяться:

Member 14000611

Спасибо ; )

OriginalGriff

:П тебе тоже! :смеяться:

Всегда пожалуйста!

Рейтинг:
17

Dirk Bahle

Мой общий совет заключается в том, чтобы установить отношения в базе данных и использовать View эти отношения должны быть открыты для любой клиентской программы.

Создать представление-Anweisung (Microsoft Access SQL) | Microsoft Docs[^]

Этот дизайн дает вам свободу изменять вашу базу данных позже (в идеале вам просто нужно будет настроить View если вы хотите внести изменения в дизайн), не всегда меняя какой-либо код.

Скорее всего, вам в конечном итоге придется заботиться о некоторых отношениях в вашем клиентском коде, но не делайте этого на компьютере. 1 NF уровень, потому что это будет контрпродуктивно, так как ваш клиентский код будет меняться каждый раз, когда вы что-то меняете в своей базе данных.