Требуется помощь по созданию базы данных SQL

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

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

Ваша таблица может быть: UserID, int ListID, int (первичный ключ-уникальный идентификатор) Title, VarChar (250) Комментарий, VarChar (MAX)

Example Content: 1 | 1 | The Title | My Comment 1 | 2 | The Other Title | My other comment 2 | 3 | First Comment | Second Person, first comment 

Пользователь Eacher просто получает свой список из запроса:

Выберите ListID, Titel, Comment FROM the_Table, где UserID = @UserID

Вы можете уйти с одной таблицей строк для всех списков, например, просто

 CREATE TABLE ListLines ( listID INTEGER, lineNo INTEGER, line TEXT, PRIMARY KEY (listID, lineNo), FOREIGN KEY (listID) REFERENCES Lists ); 

при этом таблица списков становится:

 CREATE TABLE Lists ( listID INTEGER PRIMARY KEY, userID INTEGER, title TEXT, comment TEXT, FOREIGN KEY (userID) REFERENCES Users ); 

предполагая, что у вас есть таблица Users с первичным ключом userID INTEGER с информацией для каждого пользователя (имя и т. д. и т. д.).

Поэтому, чтобы получить все строки списка, учитывая его идентификатор, вы просто

 SELECT line FROM ListLines WHERE listID=:whateverid ORDER BY lineNo; 

или вы могли бы СОЮЗ, что, например, название:

 SELECT title AS line FROM Lists WHERE listID=:whateverid UNION ALL SELECT line FROM ListLines WHERE listID=:whateverid ORDER BY lineNo; 

и так далее. Эта гибкая и эффективная организация – это реляционный способ делать вещи …

  • SQL Server Выберите оптимизацию запросов
  • Как упростить запрос с помощью объединений и аналогичных статей where clauses
  • Оптимизация запросов SQL Server T-SQL
  • Каков наилучший способ реализовать вычисляемый столбец?
  • Тайна времени выполнения хранимой процедуры SQL
  • SQL Server 2000 Удалить Top (1000)
  • IF EXISTS до INSERT, UPDATE, DELETE для оптимизации
  • Суммарная суточная сумма за тот же день или до текущей записи. Поле даты в SQL
  • SQL-запрос, чтобы возвращать верхние N строк на идентификатор по целому ряду идентификаторов
  • Размер таблицы SQL и производительность запросов
  • Влияние производительности / пространства при заказе столбцов SQL Server?
  • Давайте будем гением компьютера.