У меня есть база данных SQL, которая использует MS Access в качестве front-end и закодирована с помощью VB. Данные импортируются ежедневно из таблицы Excel в виде:Создание структуры базы данных, где один столбец имеет несколько значений?
Journal Дата, И.О. счета, сумма, Опубликовано Дата, линия Описание, идентификатор пользователя, дата Проверено, Ваучер
Данные Ваучер отформатирован в таблицу Excel например: 1111111; 2222222; 3333333
Ваучер может иметь как можно больше номеров ваучеров (в любом месте от 1 до 13 различных чисел), и каждое число разделяется точкой с запятой. Кроме того, каждый номер может отличаться по физической длине. Затем мне нужно связать эти ваучерные номера с несколькими разными таблицами. Структура данных, которая была на месте, когда я взял на себя этот проект, сохранил ваучер в форме с разделителями с запятой и проанализировал строку для ссылки на другие таблицы. Я готов обновить эту базу данных, и я не хочу хранить данные, подобные этому формату, потому что я знаю, что это нарушает 1NF.
Я знаю, что я, вероятно, должен использовать внешние ключи, но я не уверен, как с различными данными ваучера. У меня есть возможность синтаксически анализировать данные с помощью VB в Access, когда она поступает из Excel, я просто не знаю, как ее хранить, чтобы связать мои таблицы.
Цель проекта - сопоставить все, что связано с каждым отдельным ваучером, и посмотреть, совпадают ли суммы. Сейчас процесс занимает от 5 до 10 минут, чтобы разделить ваучеры и сравнить данные между таблицами.
Дайте мне знать, если вам нужна дополнительная информация. Любой совет будет принят во внимание. Спасибо!
Edit- Позвольте мне быть более ясным:
Вот пример ваучера: 2988670; 2990020; 2989130; 2991597; ONL112382
Есть несколько записей в таблице (назовем ее T1) с этим ваучером с разным количеством. Каждое из числовых значений (за исключением номера ONL) соответствует другой таблице (назовите ее T2). Если каждый из этих 4 чисел находится в T2, они называются «Matching». Если они совпадают, а сумма сумм в T2 равна сумме сумм в T1, они «соответствуют без разницы».
Иногда Ваучер выглядит следующим образом: ED414596
В этом случае, я должен сравнить это значение с совершенно другой таблицы (назовем его T3). Он включает в себя тот же процесс согласования, что и выше.
* Давайте просто скажем, что ваучер встречается по-разному, и его нужно сравнить с несколькими таблицами.
Что вы хотите сказать? Если ваш вопрос «должен ли я», ответ, вероятно, нет. Разделите данные ваучера на отдельные значения и поместите их в свою таблицу, привязанные к таблице журнала с помощью внешнего ключа. –
У вас может быть 13 полей «ваучер», или вы можете получить таблицу поиска с номерами «FK_ID» и «Voucher». Оба предпочтительнее хранить несколько значений в одном поле, причем последнее предпочтительнее первого. –
Итак, таблица ваучеров? Как насчет ваучера с 13 различными номерами? Нужно ли мне 13 разных столбцов? –