AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-11178

Jack's questions

Martin Hope
Jack
Asked: 2013-07-16 01:39:24 +0800 CST

É recomendável usar Identity como alternativa à chave primária?

  • 13

Podemos declarar um Identitylike id_numpara que id_numtenha um incremento de números únicos.

CREATE TABLE new_employees
(
  id_num int IDENTITY(1,1),
  fname varchar (20),
  minit char(1),
  lname varchar(30)
)

É recomendável usar Identitycomo alternativa, Primary keypois Identityforneceu um número exclusivo para cada linha?

sql-server primary-key
  • 2 respostas
  • 41600 Views
Martin Hope
Jack
Asked: 2013-05-17 21:47:48 +0800 CST

Converter uma data para o formato aaaammdd

  • 7

Qual comando SQL é recomendado para converter uma data em yyyymmddformato?

  1. convert(varchar(8), getdate(), 112);ou
  2. convert(varchar, getdate(), 112)

Percebo que se eu usar o segundo, ele acrescentará dois espaços após a data. (por exemplo [ 20130705] - observe os dois espaços após o valor 20130705)

É recomendado usar a primeira instrução SQL?

sql-server sql-server-2008
  • 1 respostas
  • 113056 Views
Martin Hope
Jack
Asked: 2013-05-17 21:29:28 +0800 CST

Obter a 2ª ou 3ª ocorrência de um valor em uma string delimitada

  • 11

Tenho a seguinte tabela:

==========================================================
|  Name_Level_Class_Section   |   Phone Num              |
==========================================================
|  Jacky_1_B2_23              |  1122554455              |
|  Johnhy_1_B2_24             |  1122554455              |
|  Peter_2_A5_3               |  1122554455              |
==========================================================

Estou pensando em simplificar minha instrução SQL da seguinte forma:

select 
    *, 
    substring(Name_Level_Class_Section, 
              CHARINDEX('_',Name_Level_Class_Section,
              (CHARINDEX('_', Name_Level_Class_Section) + 1)) + 1, 
      CHARINDEX('_',Name_Level_Class_Section,
     (CHARINDEX('_',Name_Level_Class_Section,
     (CHARINDEX('_',Name_Level_Class_Section)+1))+1))-    
      CHARINDEX('_',Name_Level_Class_Section,
     (CHARINDEX('_',Name_Level_Class_Section)+1))) as CLA 
from 
    Bookings 
order by 
    CLA asc, Name_Level_Class_Section asc

Para que quando eu executar o SQL, ele me dê o seguinte resultado:

==========================================================
|  Name_Level_Class_Section   |  Phone Num     |  CLA    |
==========================================================
|  Jacky_1_B2_23              |  1122554455    |  B2     |
|  Johnhy_1_B2_24             |  1122554455    |  B2     |
|  Peter_2_A5_3               |  1122554455    |  A5     |
==========================================================

Existe alguma maneira de simplificar meu SQL?

sql-server sql-server-2008
  • 3 respostas
  • 135599 Views
Martin Hope
Jack
Asked: 2013-04-24 01:55:04 +0800 CST

Obtendo a instrução sql para se referir a mais de 2 tabelas?

  • 3

Tenho as seguintes tabelas:

StaffName

============================================================================
|  Name    |   Income_Group   |    Educational_Level  |   Country          |
============================================================================
|  Jack    |   5              |    5                  |   1                |
|  Jill    |   3              |    3                  |   4                |
|  Jane    |   1              |    4                  |   6                |
|  June    |   4              |    2                  |   7                |
============================================================================

País

==================================================
| ID   |  Country   |  Country_Description       |
==================================================
| 1    | America    |                            |
| 7    | Japan      |                            |
==================================================

Grupo de renda

=======================================================
| ID   |  Income_Range        |  Description          |
=======================================================
| 1    | Below US$2500        |                       |
| 5    | US$9000 to US$12000  |                       |
=======================================================

Nível educacional

============================================================
| ID   |  Educational_Level   |  Country_Description       |
============================================================
| 1    | PhD                  |                            |
| 7    | Master               |                            |
============================================================

Minha intenção é obter todos os valores de outra tabela para a tabela principal e exibir algo como o seguinte:

Resultado Pretendido

=======================================================================================
|  Name    |   Income_Group              |    Educational_Level  |   Country          |
=======================================================================================
|  John    |   US$9000 to US$12000       |    PhD                |   America          |
|  KoKo    |   US$5000 to US$7000        |    Master             |   Japan            |
|  Kane    |   US$1000 to US$2000        |    B.Degree           |   Thailand         |
|  Ali     |   US$8200 to US$9200        |    College            |   Malaysia         |
=======================================================================================

Tentei usar o seguinte sql:

select 
    s.name, s.Income_Group, s.Educational_Level, s.Country
from 
    StaffName s, Country c. IncomeGroup ig, EducationalLevel el 
where 
    s.Income_Group = c.ID 
    AND s.Educational_Level = ig.id 
    AND s.Country = el.id

Mas não retorna nenhum resultado.

Não há chaves estrangeiras ou primárias para todas as tabelas.

O que eu poderia estar perdendo?

sql-server-2008
  • 3 respostas
  • 299 Views
Martin Hope
Jack
Asked: 2013-02-28 01:00:58 +0800 CST

Selecione os 5 principais registros e a coluna específica de cada tabela no mesmo banco de dados

  • 3

Eu tenho mais de 50 tabelas em um banco de dados.

Não quero usar o seguinte SQL em cada tabela de um banco de dados.

select top 10 * from {table_name}

Então, é possível exibir os 10 primeiros registros MAIS mostrar apenas a 2ª e 3ª coluna para cada tabela dentro do mesmo banco de dados usando sql?

(Se a tabela não tiver as 2 colunas - exibirá a 1ª e a 2ª coluna. Se a tabela tiver 1 coluna, exibirá a 1ª coluna. Se a tabela tiver mais de 2 colunas, exibirá a 2ª e a 3ª coluna. Se a tabela não tiver nenhuma coluna, não exiba nada.)

sql-server sql-server-2008
  • 1 respostas
  • 5527 Views
Martin Hope
Jack
Asked: 2013-02-27 22:01:36 +0800 CST

Como selecionar os 10 primeiros registros para cada tabela no mesmo banco de dados usando sql

  • 7

Eu tenho mais de 50 tabelas em um banco de dados.

Não quero usar o seguinte SQL em cada tabela de um banco de dados.

select * from {table_name}

Então, é possível exibir os 10 primeiros registros de cada tabela dentro do mesmo banco de dados usando sql?

sql-server-2008
  • 3 respostas
  • 21358 Views
Martin Hope
Jack
Asked: 2013-02-23 01:27:11 +0800 CST

Diferença entre esquemas próprios e associação de função para o Microsoft SQL Server

  • 27

Existem diferenças entre Owned Schemase Role Members?

Pelo que entendi, Role Memberssão obrigatórios - o usuário precisa ter pelo menos uma das caixas de seleção Role Membersmarcadas.

No entanto, o Owned Schemasnão é obrigatório. Isso realmente me faz pensar por que há uma necessidade de ter o Owned Schemaslá.

insira a descrição da imagem aqui

sql-server schema
  • 2 respostas
  • 33896 Views
Martin Hope
Jack
Asked: 2013-02-22 23:49:52 +0800 CST

O login já tem uma conta com um nome de usuário diferente

  • 37

Quando executo este SQL:

USE ASPState
GO
IF NOT EXISTS(SELECT * FROM sys.sysusers WHERE NAME = 'R2Server\AAOUser')
CREATE USER [R2Server\AAOUser] FOR LOGIN [R2Server\AAOUser];
GO

Estou tendo o erro a seguir:

O login já tem uma conta com um nome de usuário diferente.

Como posso saber qual é esse nome de usuário diferente para minha conta de login?

sql-server security
  • 3 respostas
  • 92731 Views
Martin Hope
Jack
Asked: 2013-02-22 23:46:41 +0800 CST

Não é possível conceder, negar ou revogar permissões para sa, dbo, proprietário da entidade, information_schema, sys ou você mesmo

  • 8

Eu encontro o seguinte erro:

Cannot grant, deny, or revoke permissions to sa, dbo, entity owner, information_schema, sys, or yourself.

quando eu estava tentando esses comandos

USE ASPState
GO

GRANT EXECUTE ON CreateTempTables TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON DeleteExpiredSessions TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON GetMajorVersion TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON GetHashCode TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempGetAppID TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempGetStateItem TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempGetStateItem2 TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempGetStateItem3 TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempGetStateItemExclusive TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempGetStateItemExclusive2 TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempGetStateItemExclusive3 TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempGetVersion TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempInsertStateItemLong TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempInsertStateItemShort TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempInsertUninitializedItem TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempReleaseStateItemExclusive TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempRemoveStateItem TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempResetTimeout TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempUpdateStateItemLong TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempUpdateStateItemLongNullShort TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempUpdateStateItemShort TO [R2Server\AAOUser]
GO
GRANT EXECUTE ON TempUpdateStateItemShortNullLong TO [R2Server\AAOUser]
GO

Então, como eu sei que tipo de permissões minha conta R2Server\AAOUsertem para o banco de dados ASPState? e quais são as formas de resolver o erro (para que eu possa conceder essas permissões à minha conta)?

sql-server permissions
  • 1 respostas
  • 42408 Views
Martin Hope
Jack
Asked: 2013-01-08 21:48:56 +0800 CST

Como uso o SSMS para comparar a Tabela 1 do Banco de Dados 1 com a Tabela 1 do Banco de Dados 2?

  • 2

Eu tenho dois bancos de dados - Database1 e Database2.

Ambos os bancos de dados contêm uma tabela que possui estrutura semelhante, exemplificada a seguir:

==================================================== ===========================================
| Identificação | Nome | TelefoneNoFormato | DialingCountryCode | InternationalDialingCode | InternetTLD |
==================================================== ===========================================
| | | | | | |
==================================================== ===========================================

Porém, por algum motivo, (a) uma das tabelas de um dos bancos de dados possui dados que não são exatamente os mesmos que (b) os contidos na outra tabela do outro banco de dados.

Então, como posso comparar Database1.Table1contra Database2.Table1?

Tentei usar a seguinte consulta, mas nada aconteceu, então queria saber se tenho que reescrevê-la:

SELECT MIN(TableName) as TableName,
       ID,
       Name,
       PhoneNoFormat,
       DialingCountryCode,
       InternationalDialingCode,
       InternetTLD

FROM

(

  SELECT  'Table A' as TableName,
          A.ID,
          A.Name,
          A.PhoneNoFormat,
          A.DialingCountryCode,
          A.InternationalDialingCode,
          A.InternetTLD

  FROM [D:\DATABASE1.MDF].[dbo].[Table1] AS A

  UNION ALL

  SELECT 'Table B' as TableName,
         B.ID, B.Name,
         B.PhoneNoFormat,
         B.DialingCountryCode,
         B.InternationalDialingCode,
         B.InternetTLD

  FROM [D:\DATABASE2.MDF].[dbo].[Table1] AS B

) tmp

GROUP BY ID, Name, PhoneNoFormat, DialingCountryCode, InternationalDialingCode, InternetTLD

HAVING COUNT(*) = 1

ORDER BY ID
sql-server ssms
  • 4 respostas
  • 17833 Views
Martin Hope
Jack
Asked: 2013-01-04 21:50:35 +0800 CST

Como fazer o downgrade do meu arquivo mdf da versão 661 para 655 ou anterior?

  • 1

Estou com um problema ao anexar o arquivo AdverntureWorksLT2008R2_Data.mdfao Microsoft SQL Server Management Studio (SSMS).

O banco de dados 'AdventureWorksLT2008R2' não pode ser aberto porque é a versão 661. Este servidor suporta a versão 655 e anteriores. Um caminho de downgrade não é suportado. Não foi possível abrir o novo banco de dados 'AdventureWorksLT2008R2'. CREATE DATABASE foi abortado. )Microsoft SQL Server, Erro: 948)

Então, eu queria saber se é possível fazer algo no .mdfarquivo para que o .mdfarquivo seja rebaixado para a versão 655 ou anterior.

Há uma(s) pergunta(s) semelhante(s) como esta - Anexando banco de dados ao servidor SQL

A resposta correta menciona saber mais sobre a versão e uma sugere que o Service Pack mais recente deve ser instalado.

Verifiquei a versão e notei que o Service Pack mais recente foi instalado.

Então, eu estava pensando em fazer o downgrade do arquivo mdf, mas como faço para fazer o downgrade?

ssms
  • 1 respostas
  • 26946 Views
Martin Hope
Jack
Asked: 2013-01-04 20:28:52 +0800 CST

Falha ao anexar banco de dados para o servidor '{SERVER_NAME}\{INSTANCE_NAME}'. (Microsoft.SqlServer.Smo)

  • 1

Estranho, tentei anexar o banco AdventureWorksde dados deste site - http://sqlserveversamples.codeplex.com/

No entanto, encontro o seguinte problema ao anexarAdventureWorks2008R2_Data.mdf

Falha ao anexar banco de dados para o servidor '{SERVER_NAME}{INSTANCE_NAME}'. (Microsoft.SqlServer.Smo)

Informação adicional:

Ocorreu uma exceção durante a execução de uma instrução ou lote Transact-SQL. (Microsoft.SqlServer.ConnectionInfo)

A pesquisa de diretório para o arquivo "C:\Arquivos de programas\Microsoft SQL Server\MSSQL10.50.MSSQLSERVER\MSSQL\DATA\AdventureWorks2008R2_Log.ldf" falhou com o erro 3 do sistema operacional (o sistema não pode encontrar o caminho especificado). (Microsoft SQL Server, erro: 5133)

sql-server-2008
  • 2 respostas
  • 3901 Views
Martin Hope
Jack
Asked: 2012-11-28 23:00:15 +0800 CST

Mesclar e formatar dados de duas tabelas

  • 4

Eu tenho uma tabela chamada Slotda seguinte forma com dados padrão:

1ª Mesa

================================
|  Day  | Time  | Venue | Free |
================================
|   1   | 0830  | RM 1  |  10  |
|   1   | 0830  | RM 2  |  10  |
|   1   | 1030  | RM 1  |  20  |
|   1   | 1030  | RM 2  |  20  |
|   2   | 0830  | RM 1  |  10  |
|   2   | 0830  | RM 2  |  10  |
|   2   | 1030  | RM 1  |  30  |
|   2   | 1030  | RM 2  |  30  |
================================

Há outra tabela Bookingcom dados que podem ir e vir a qualquer momento, mas o cabeçalho da coluna é fixo:

2ª Mesa

===================================
|  Day  | Time  | Venue |  User   |
===================================
|   1   | 0830  | RM 1  |  Jill   |
|   1   | 0830  | RM 2  |  Jill   |
|   1   | 0830  | RM 1  |  Jack   |
|   1   | 0830  | RM 1  |  Mary   |
|   1   | 0830  | RM 2  |  Mary   |
|   1   | 0830  | RM 2  |  Jill   |
|   2   | 1030  | RM 1  |  Ken    |
|   2   | 1030  | RM 1  |  Ken    |
====================================

Com base nos dados de exemplo na tabela Booking, como posso derivar a tabela a seguir?

3ª Mesa (Era isso que eu queria)

=======================================
|  Day  | Time  | Venue | Free | Used |
=======================================
|   1   | 0830  | RM 1  |  10  |  3   |
|   1   | 0830  | RM 2  |  10  |  3   |
|   1   | 1030  | RM 1  |  20  |  0   |
|   1   | 1030  | RM 2  |  20  |  0   |
|   2   | 0830  | RM 1  |  10  |  0   |
|   2   | 0830  | RM 2  |  10  |  0   |
|   2   | 1030  | RM 1  |  30  |  2   |
|   2   | 1030  | RM 2  |  30  |  0   |
=======================================

Eu sou capaz de recuperar a seguinte tabela

4ª Mesa

================================
|  Day  | Time  | Venue | Used |
================================
|   1   | 0830  | RM 1  |  3   |
|   1   | 0830  | RM 2  |  3   |
|   2   | 1030  | RM 1  |  2   |
================================

usando o seguinte comando

select 
    day, time, venue, COUNT(*) as Used
from 
    booking 
group by 
    day, time, venue 
order by 
    day asc, time asc, time asc

mas acho difícil mesclar e obter a 3ª mesa que eu queria.

sql-server-2008
  • 2 respostas
  • 121 Views
Martin Hope
Jack
Asked: 2012-10-11 23:39:02 +0800 CST

Executar o SQL Server Profiler ou usar a função Jobs do SQL Server Agent no SSMS ou...?

  • 1

Eu tenho um problema aqui - desejo acompanhar todas as transações executadas no SQL Server, mas queria saber como devo proceder.

Se eu fosse usar o SQL Server Profiler e configurá-lo para armazenar todo o histórico de transações em um arquivo e executar um roll-over se um tamanho especificado for atingido, precisarei garantir que o SQL Server Profiler esteja sempre aberto e corrida. Também pelo que entendi, isso diminuirá o desempenho do servidor.

Se eu usasse a função Jobs no SQL Server Agent no SSMS, ela se tornaria uma tarefa agendada que seria executada apenas quando estivesse sendo chamada.

Então, como faço para acompanhar todas as transações SQL feitas no SQL Server e gravá-las 24 horas por dia, 7 dias por semana ou até que eu as interrompa manualmente (e também não diminua o desempenho do servidor)?

sql-server-2008 ssms
  • 1 respostas
  • 2494 Views
Martin Hope
Jack
Asked: 2012-10-04 22:22:28 +0800 CST

Como fazer com que o SQL Profiler registre o usuário que faz login em seu aplicativo da Web, mas o nome de usuário e a senha do SQL são especificados no arquivo web.config?

  • 0

Eu tenho um aplicativo da web que recupera dados de um banco de dados. Especifiquei no arquivo web.config do aplicativo da web para ter o nome de usuário sae a senha password.

Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=sa;Password=password;

No entanto, noto que o SQL Profiler exibirá a coluna LoginName como sae não o usuário real se um usuário real fizer logon no aplicativo da web.

Exemplo: suponha que um usuário WATSON\User1 acesse o aplicativo da web. O SQL Profiler não registrará WATSON\User1na coluna LoginName. Então não saberei quem fez alguma coisa.

Então, o que devo fazer para que o SQL Profiler registre esses usuários que acessam o aplicativo de outro domínio?

sql-server-2008 profiler
  • 1 respostas
  • 2011 Views
Martin Hope
Jack
Asked: 2012-10-03 23:45:57 +0800 CST

Detalhes da exceção: System.Data.SqlClient.SqlException: Login falhou para o usuário

  • 1

Um de nossos usuários de outro domínio WATSONrecebeu a seguinte mensagem de erro:

Exception Details: System.Data.SqlClient.SqlException: Login failed for user 'WATSON\User1'.

quando ele está tentando acessar um de nossos aplicativos da web que recuperam informações de um banco de dados.

O aplicativo da Web e o banco de dados que o aplicativo da Web usa estão localizados em um Windows Server 2008 R2. O nome da máquina é Jack11e ingressou no domínio WATSON. O aplicativo da Web é hospedado no IIS enquanto o banco de dados é hospedado no SQL Server 2008 Enterprise.

Preciso configurar meu SQL Server 2008 Enterprise para permitir que o usuário do domínio, como neste caso WATSON\User1(não o usuário local), acesse o aplicativo da Web que usa qualquer banco de dados dentro do SQL Server 2008?

(Observe que pode haver mais de 50 usuários de domínio que podem ser necessários para acessar o aplicativo da web e, portanto, seria ineficiente adicionar cada usuário de domínio aos direitos de usuário do banco de dados)

sql-server sql-server-2008
  • 2 respostas
  • 6820 Views
Martin Hope
Jack
Asked: 2012-10-01 22:00:12 +0800 CST

Não foi possível iniciar o SQL Server Agent (SQLEXPRESS) [duplicado]

  • 3
Essa pergunta já tem respostas aqui :
Fechado há 10 anos .

Possível duplicado:
o agente do Sql Server não pode ser iniciado

Não consegui iniciar a SQL Server Agent (SQLEXPRESS)instância, pois isso me dará este erro:

The request failed or the service did not respond in a timely fashion. Consult the event log or other applicable error logs for details

Procuro alguma solução e dizem que devo remover o SQL Server 2008 Express Edition. No entanto, não tenho o SQL Server 2008 Express Edition e, portanto, não o instalei.

Além disso, noto outro SQL Server Agent (MSSQLSERVER), no qual consigo iniciá-lo e deixá-lo funcionar. Porém, tento usar minha conta local e mesmo a saconta, não consegui entrar nessa instância. (O SQL Server (MSSQLSERVER)está funcionando também)

Então, posso saber o que estou perdendo?

sql-server-2008 ssms
  • 1 respostas
  • 25501 Views
Martin Hope
Jack
Asked: 2012-10-01 21:50:19 +0800 CST

Não foi possível encontrar o Server Agent no SSMS

  • 23

Estou seguindo o guia - http://www.sqlchicken.com/2009/07/how-to-create-a-server-side-trace-with-sql-profiler/ que está funcionando até chegar à Etapa 8

  1. Agora para agendar seu script recém-criado. No SSMS, conecte-se ao servidor no qual deseja rastrear. Vá para o SQL Server Agent e expanda-o para ver a pasta Jobs. Clique com o botão direito do mouse na pasta Trabalhos e selecione Novo Trabalho.

SQL Server Agent -> Trabalhos -> Novo Trabalho

não consigo não encontrar SQL Server Agent. Onde posso tornar isso SQL Server Agentvisível? Eu dei ao usuário atual toda a permissão de acesso.

sql-server sql-server-2008
  • 7 respostas
  • 119306 Views
Martin Hope
Jack
Asked: 2012-09-21 02:05:52 +0800 CST

É possível gerar tabela com dados gerados sem instruções INSERT manuais?

  • 0

É possível usar o SQLCMD no SQL Server 2008 para criar uma tabela e gerar dados e inserir na tabela, sem digitar manualmente a INSERTinstrução para cada linha?

Exemplo:

Suponha que haja 10 semanas (1, 2, 3 ... 10) e 2 horários (11h, 12h) e 5 locais (Sala 1, Sala 2 ... Sala 5). Assim, haverá um total de 10 x 2 x 5 = 100 linhas.

Então, é possível ter uma instrução SQL que gere essas 100 linhas quando dados os 3 parâmetros de dados (semana, horário e local)?

+--------------------------------+
| Week    |   Time   |   Venue   |
+--------------------------------+
| 1       |  11 am   |  Room 1   |
| 1       |  12 pm   |  Room 1   |
| 1       |  11 am   |  Room 1   |
|                                |
| 10      |  12 pm   |  Room 5   |
+--------------------------------+
sql-server sql-server-2008
  • 1 respostas
  • 311 Views
Martin Hope
Jack
Asked: 2012-09-21 01:40:24 +0800 CST

Como você projetaria uma mesa para um sistema de reservas?

  • 2

Eu tenho um banco de dados de design para um sistema de reservas. Os requisitos do sistema de reservas são os seguintes:

  1. O sistema de reservas permite ao usuário reservar um horário (1 hora) entre 8h e 13h de segunda a sexta-feira.
  2. O usuário pode reservar um local para esse intervalo de tempo de 1 hora.
  3. O sistema de reservas está aberto por 13 semanas, depois descansa por 13 semanas e abre por mais 13 semanas e descansa por 13 semanas a cada ano.

O problema que enfrento ao projetar a tabela é que existem 3 variáveis ​​de controle importantes - intervalo de tempo, local e 13 semanas.

Eu esbocei o design tendo uma tabela que contém uma quantidade fixa de linhas. (Assim, para 8h às 13h, haverá 5 slots e, portanto, cada semana terá 25 slots. Suponha que haja 3 locais, então terei 25 slots x 3 locais, o que me dá 75 linhas. Então eu multiplique 75 por 26 semanas, porque há duas 13 semanas que o sistema estará aberto. Assim, isso me dará 1950 linhas fixas.

Mas, o problema será que se eu aumentar o número de horas terminando às 22h, terei 14 slots por dia, o que significa que cada semana terá 70 slots. E se o local aumentar para 10 locais, terei 70 slots x 10 locais, o que me dá 700 linhas. Claro, multiplique por 26 semanas, precisarei ter uma tabela que contenha 18.200 linhas fixas. O design será difícil de gerenciar, pois há muitas linhas.

A tabela ficaria mais ou menos assim:

+------------------------------------------------- ---------------------+
| Identificação | Semana | Tempo | Local | Usuário | Estado |
+------------------------------------------------- ---------------------+
| 000001 | 1 | 8h | Sala 1 | | Disponível |
| 000002 | 1 | 9h | Sala 1 | | Disponível |
| 000003 | 1 | 10h | Sala 1 | | Disponível |
| |
| 018200 | 26 | 22h | Sala 10 | | Reservado |
+------------------------------------------------- ---------------------+

O ID será o PK para esta tabela.

Existe uma maneira de acompanhar cada slot de reserva, mas sem criar uma quantidade fixa de linhas para cada slot de reserva? (Cada slot de reserva conterá 3 dados importantes - a semana, hora, local)

sql-server-2008 database-design
  • 2 respostas
  • 7894 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve