alibek писал(а):А нельзя ли выкинуть базу и сделать ее заново?
alibek писал(а):Есть хранимая процедура
alibek писал(а):Access... Access это плохо, тогда только логикой
alibek писал(а):Нужна таблица "Фирмы". Нужна таблица "Клиенты". Нужна таблица "ФирмыКлиенты", которая будет определять, какой клиент к какой фирме относится.
alibek писал(а):А по тому, как организуются отдельные элементы системы, я напишу только завтра
FACTORIES
FACT_ID (counter)
CODE (string)
TITLE (string)
USERS
USER_ID (counter)
FACT_FACT_ID (fk)
LOGIN (string)
NAME (string)
TITLE (string)
CROSSACCESS (boolean)
LOCKED (boolean)
LOCKDATE (datetime)
LOCKINFO (memo)
CLIENTS
CLNT_ID (counter)
FACT_FACT_ID (fk)
SPECIAL (boolean)
ACCOUNT (long)
TITLE (string)
POSTADDRESS
REGADDRESS
INN
...
NOTES (memo)
USER
ACCOUNTS
ACNT_ID (counter)
CLNT_CLNT_ID (fk)
R_ACC (string)
KORR_ACC (string)
BANK (string)
BIK (string)
CITY (string)
...
BALANCES
BLNC_ID (counter)
ACNT_ACNT_ID (fk)
DATE (datetime)
ORDER (long)
LAST (boolean)
BALANCE (currency)
SELECT *
FROM CLIENTS
WHERE [SPECIAL] = FALSE
AND ((FACT_FACT_ID = [CurFactory]) OR ([SuperUser] = TRUE))
DOC_TYPES
DTYP_ID (counter)
TITLE (string)
DOCUMENTS
DOCS_ID (counter)
FACT_FACT_ID (fk)
DTYP_DTYP_ID (fk)
DATE (datetime)
NUMBER (long)
CLIENT_FROM (fk на CLIENTS)
CLIENT_TO (fk на CLIENTS)
...
NOTES (memo)
USER
OPERATIONS
OPER_ID (counter)
DOCS_DOCS_ID (fk)
SOURCE
DESTINATION
AMOUNT (currency)
GOOD_TYPES
GTYP_ID (counter)
TITLE (string)
PARENT (fk на GOOD_TYPES)
...
GOOD_CATEGORIES
GCAT_ID (counter)
TITLE (string)
HIDDEN (boolean)
GOODS
GOOD_ID (counter)
GTYP_GTYP_ID (fk)
GCAT_GCAT_ID (fk)
TITLE (string)
PRICE1 (currency)
PRICE2 (currency)
PRICE3 (currency)
COUNTRY (string)
...
STORAGES
STRG_ID (counter)
FACT_FACT_ID (fk)
DATE (datetime)
GOOD_GOOD_ID (fk)
AMOUNT (double)
PRICE1 (currency)
PRICE2 (currency)
PRICE3 (currency)
RESERVED (double)
RESERVATIONS
RSRV_ID (counter)
FACT_FACT_ID (fk)
STRG_STRG_ID (fk)
GOOD_GOOD_ID (fk)
CLNT_CLNT_ID (fk)
AMOUNT (double)
START_DATE (datetime)
END_DATE (datetime)
USER
Ennor писал(а):Признаться, совершенно не понял, зачем делить контрагентов на поставщиков и покупателей.
Ennor писал(а):Далее, на тему области видимости.
Ennor писал(а):но ИНН и БИК ввел правильно
alibek писал(а):записи по каждому изменению баланса
01.01.2006 12 123.12
01.01.2006 13 13.12
01.02.2006 12 234.12
01.02.2006 13 123.12
11.02.2006 13 1230.12
01.03.2006 12 12.12
01.03.2006 13 654.12
alibek писал(а):Но я предполагал, что планируется что-то типа складского учета, а теперь похоже, что это ненужная детализация
alibek писал(а):CODE нужно только затем, чтобы можно было идентифицировать фирму.
...
По крайней мере я не вижу другого способа сделать подобное в Access
skiperski писал(а):А нельзя сразу прописать FACTORY_ID в настройках?
skiperski писал(а):Планируется. Вопрос в том насколько детально хранить баланс. У тебя - за сутки. Может эффективнее будет за неделю или месяц, или по каждой операции?
alibek писал(а):лично я бы выбрал второй способ (при каждом изменении баланса, т.е. при проводках).
alibek писал(а):Не говоря уж о том, что CODE гораздо удобнее для человека, чем непонятное число И запомнить его легче, если что.
skiperski писал(а):Потом кто-то делает проводку задним числом, и получаем ситуацию: Каскадное обновление записей в таблице
Сейчас этот форум просматривают: AhrefsBot, Google-бот, Yandex-бот и гости: 83