В каждом атрибуте каждой строки надо сохранять только один элемент.
Например, надо узнать, какие книги отобраны для определенного заказа.
1) В таблицу Заказы можно добавить столбец, в котором будет размещен список всех заказанных книг.
ТаблицаЗАКАЗЫ
ЗаказID
| КлиентID
| Сумма
| Дата
| Заказанные книги
|
|
| 27.50
| 02-Apr-2000
| 0-672-31697-8
|
|
| 12.99
| 15-Apr-2000
| 0-672-31745-1, 0-672-31509-2
|
|
| 74.00
| 19-Apr-2000
| 0-672-31697-8
|
|
| 6.99
| 01-May-2000
| 0-672-31745-1, 0-672-31509-2, 0-672-31697-8
|
Этот вариант не очень хорош, т.к. мы помещаем целую таблицу в один столбец – таблицу, показывающую отношения заказов к книгам. Тогда сложно будет ответить на вопрос "Сколько экземпляров книги Access 2000 было заказано?" Система больше не сможет подсчитывать записи, совпадающие друг с другом. Вместо этого она проанализирует значение каждого поля для нахождения внутри него любых совпадений.
2) Вместо создания таблицы в таблице надо просто создать новую таблицу Заказанные Экземпляры, обеспечивающую связь между таблицами Заказы и Книги.
ТаблицаЗАКАЗАННЫЕ_ЭКЗЕМПЛЯРЫ
ЗаказID
| ISBN
| Количество
|
| 0-672-31697-8
|
|
| 0-672-31745-1
|
|
| 0-672-31509-2
|
|
| 0-672-31697-8
|
|
| 0-672-31745-1
|
|
| 0-672-31509-2
|
|
| 0-672-31697-8
|
|
Эта таблица типична для случаев, когда между двумя объектами существует отношение типа "многие ко многим" – т.е. один заказ может включать в себя несколько книг, а какую-либо книгу могут заказать несколько человек.