Как создать таблицу с динамическим нет. столбцов для ввода данных - PullRequest
3 голосов
/ 20 июля 2009

В настоящее время я работаю над проектом, в котором мне нужно сохранить данные в зависимости от активного номера. предметов.

Это как ..

В магазинах не может быть элементов, которые можно динамически добавлять или уменьшать из административной части. Каждый элемент может быть активирован или деактивирован. НЕТ проблем.

Но мне нужно управлять / сохранять эти динамические n нет. предметов в таблице для каждого магазина. Я не могу определиться со схемой таблицы.

Любая помощь будет высоко оценена.

Ответы [ 3 ]

4 голосов
/ 20 июля 2009

Я предлагаю стандартное отношение «многие ко многим», используя среднюю таблицу. Таким образом, вы будете использовать 3 таблицы:

  • StoresTable: список магазинов
  • ItemsTable: список предметов
  • StoreItemsTable: список товаров в магазинах, каждая строка будет иметь внешний ключ как для таблицы магазинов, так и для таблицы товаров

Надеюсь, это поможет.

3 голосов
/ 20 июля 2009

Ваша проблема на самом деле не так сложна, если вы используете другой подход.

В магазине может быть несколько предметов. Таким образом, в основном в магазине Сьюзи есть 1 предмет, но вдруг она хочет 2, и вы хотели бы добавить столбец. Это очень сложно, если она вдруг захочет добавить 2000 предметов.

Наилучшим подходом будет использование таблицы магазинов (в которой есть название магазина, дата его создания и первичный ключ) и таблицы товаров. Затем вы можете добавить элементы в виде записей в таблицу и связать их с магазином через первичный ключ магазина.

Пример:

Store table:
PK    Name             Owner
1     Sunshine Store   Susi
2     Moonstore        Harald

Item table:
PK    Name     Store_id        Price
1     Candle   1                2.44
2     Table    1               51.44
3     Chair    2                6.55

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

 "Select * from ITEMS where Store_id = 1;"

и получите все предметы Суси в ответ.

Удачи!

0 голосов
/ 20 июля 2009

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

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