Тип данных атрибута таблицы - PullRequest
0 голосов
/ 25 июня 2019

Мне нужна помощь, чтобы выбрать тип данных в таблице SQL.Атрибут должен принимать 4 варианта, например, я хочу создать таблицу с атрибутом status, но я не знаю, каким типом данных он должен быть, и как реализовать 4 варианта выбора.

CREATE TABLE status (
   USERNAME type_of_data (options: offline, online, away, busy)
);

Я не могу создать еще 4 таблицы для каждой опции.
Это можно сделать?если нет, то что будет лучше?

Thx

Ответы [ 3 ]

2 голосов
/ 25 июня 2019

вы можете определить таблицу для Status, которая имеет 2 столбца (ID (int), Status (VARCHAR (100)), заполняющих вашу таблицу. Введите другие таблицы.

это будет:

  CREATE TABLE [dbo].[TBL_STATUS](
     [ID] [int] IDENTITY(1,1) NOT NULL,
     [STATUS] [nvarchar](100) NOT NULL,
     CONSTRAINT [PK_TBL_STATUS] PRIMARY KEY CLUSTERED 
  (
    [ID] ASC
   )
    ) ON [PRIMARY]
GO

CREATE TABLE [dbo].[TBL_USER](
[ID] [int] IDENTITY(1,1) NOT NULL,
[USER_ID] [int] NULL,
[USERNAME] [nvarchar](200) NULL,
[STATUS_ID] [int] NULL,
 CONSTRAINT [PK_TBL_USER] PRIMARY KEY CLUSTERED 
(
[ID] ASC
)
) ON [PRIMARY]

 GO

 ALTER TABLE [dbo].[TBL_USER]  WITH CHECK ADD  CONSTRAINT   [FK_TBL_USER_TBL_STATUS] FOREIGN KEY([STATUS_ID])
REFERENCES [dbo].[TBL_STATUS] ([ID])
GO

ALTER TABLE [dbo].[TBL_USER] CHECK CONSTRAINT [FK_TBL_USER_TBL_STATUS]
GO
1 голос
/ 25 июня 2019

Кажется, вы хотите проверить ограничение:

CREATE TABLE status 
( 
   USERNAME     varchar(100) not null, 
   type_of_data varchar(20) not null, 
   constraint check_type check (type_of_data in ('offline', 'online', 'away', 'busy'))
);

Приведенное выше создает таблицу с двумя столбцами.Один с именем username не имеет ограничений (кроме обязательных), а другой - с именем type_of_data.

Значения, которые вы можете поместить в столбец type_of_data, ограничены 'offline', 'online', 'away' и 'busy';

Вы также должны найти первичный ключ дляэтот стол.Может быть, это username или вам нужно добавить столбец identity для генерации первичного ключа.

0 голосов
/ 25 июня 2019

Вы можете использовать тип данных VARCHAR или VARCHAR2 в oracle для хранения столбца состояния.

Согласно DOCS

Тип данных VARCHAR2 хранит символьные строки переменной длины. когда Вы создаете таблицу со столбцом VARCHAR2, вы указываете максимум длина строки (в байтах или символах) от 1 до 4000 байтов для столбец VARCHAR2

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