2009-07-20 3 views
3

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

Его, как ..

магазинов могут иметь п нет элементов, которые могут быть динамически добавлены или уменьшенными от администратора фонового. Каждый элемент может быть активирован или деактивирован. Без проблем.

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

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

ответ

4

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

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

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

3

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

В магазине есть несколько предметов. Таким образом, в основном магазин Susi имеет 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;" 

и получить все предметы Susi в качестве ответа.

Удачи вам!

0

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

Смежные вопросы