Имейте в виду, что для данной таблицы PK будет ВСЕГДА встречаться один раз.
Каждая таблица должна иметь PK, и они не будут использоваться в качестве PK в любой другой таблице.
Итак, у вас может быть таблица Warehouse.
У нее может быть PK WarehoueID
И у вас может быть таблица с именем Customer, и у нее может быть PK с именем CustomerID..
Далее: Если вы ВСЕГДА назначаете одного клиента для данного склада, просто добавьте столбец в таблицу клиентов с именем warehouseID.Однако этот столбец НЕ является ПК.Это столбец длинных чисел «самолет Джейн».В этом столбце наверняка будут разрешены дубликаты.
Единственная реальная проблема, с которой вы здесь сталкиваетесь, может иметь клиент или использовать более одного склада?
Можно ли назначить более одного склада данному клиенту?
Ну, тогда вам просто нужно создать таблицу или «список» складов, которые клиент может использовать.
Если это так, то вам нужна таблица с именем:
CustomerListOfWareHouses.
Приведенная выше таблица будет просто «списком» складов, которые использует данный клиент.Если это именно то, что вам нужно, то вам НЕ нужен storeID вообще в таблице клиентов.
У вас есть
tblCustomes
--->tblCustomerListOfWareHouses
Так что tblcustomerListOfWareHouses будет тем, что мы называем дочерней таблицей.
В этой таблице у вас будет PK (ListOfWareHousesID), а затем вы сможете установить, кому принадлежит эта запись (customerID), а затем установить используемый ими склад (WareHouseID).
Итакэтот «список» складов будет выглядеть так:
ListOfWareHousesID (PK)
CustomerID (plane jane long number colum)
WarehouseID (plane jane long number colum)
Date of Enter (date column, when created)
Who Authorized (person that approved use of warehouse).
“and perhaps a few ore columns if you want or need).
А затем 3-я таблица складов.В этой конфигурации вы фактически НИКОГДА не присоединяете склад к данному клиенту, а просто располагаете таблицей, которая «перечисляет» склады, которые использует клиент.
Это предполагает, что каждый клиент может использоватьи иметь «много» склад.
Таким образом, вы никогда не прикрепляете склад к клиенту.Все, что вы действительно делаете, это «перечисляете» в таблице склады, которые использует клиент (tblCustomerListOfWareHouses).
Так что это означает, что таблица клиента и таблица склада НИКОГДА не связаны друг с другом, инет никаких принудительных отношений между клиентами и складами.
Ваша модель данных «позволит» вам присоединить «много» складов к одному клиенту, но на самом деле все, что вы действительно делаете, - это «перечисляете» склады, которые есть у клиента, добавляя записи в «списоксклады », которыми пользуется клиент (tblCustoerListOfWareHouses).
Конечно, если клиент может использовать ТОЛЬКО и иметь один склад?Ну, тогда просто добавьте столбец в таблицу клиентов с именем WareHouseID и просто введите значение «id» для этого одного клиента, чтобы присоединить этого клиента к одному складу.(поэтому вам не понадобится «список складов», потому что им разрешено использовать только один склад).
Как уже отмечалось, вам нужен «список» складов, только если клиент может использовать и иметь болееодин склад.
Таким образом, каждая запись склада будет иметь PK, как и каждый клиент.Но ничто не указывает на наличие дубликатов на данный момент.
Если клиент может использовать только один склад, добавьте этот простой столбец в таблицу клиентов, в которой находится склад.И это плоский столбец Джейн - многие клиенты могут использовать один и тот же склад, и этот столбец, скорее всего, будет содержать дубликаты.