2017-11-03 14 views
0

이 포럼의 여러 회원은 앱 실행 중에 데이터베이스에 테이블을 만들 것을 경고했습니다. 대신 프로그래밍하는 동안 테이블을 만들고 런타임 중에 테이블로 채우는 것이 좋습니다.프로그램 실행 중 SQite 테이블 만들기

예를 들어 메모 앱을 만들 때 사용자가 단일 메모의 이름을 지정하고이 메모를 데이터베이스의 표로 만들게하는 것이 편리합니다. 이것은 사용자가 노트를 생성 할 때 테이블을 생성하고 노트의 이름을 테이블의 이름으로 만드는 것입니다. 왜 이것이 나쁜 습관입니까? 나는 오해 했습니까?

+0

모든 노트를 하나의 테이블에 넣습니다. 그렇지 않은 경우 어떻게 노트를 나열하거나 계산합니까? –

답변

1

사용자와 사용자가 추가하려는 모든 메모에 대해 테이블을 만드는 것은 매우 불편합니다. 그것은 단지 그것이 작동하는 방식이 아닙니다. 표에는 예를 들어 메모 같은 동일한 유형의 정보 행이 포함되어야하며 각 메모는 상기 표의 행/기록으로 추가되어야합니다. 예를 들어 테이블은 노트라고해야하며 각 노트의 이름을 원하면 notes 테이블의 이름 인 name이 될 수 있습니다.

수동으로 메모를하는 경우 (전자 장치가없는 경우), 메모장이 하나 뿐이고 필요에 따라 다른 페이지에 메모를 추가하거나 가방을 휴대 할 수 있습니다 새로운 노트를 추가 할 때마다 별도의 노트에 각 노트를 추가 할 수 있도록 노트가 가득 찼습니다.

이 비유에서는 노트북이 데이터베이스 테이블과 동일하고, 노트북의 페이지가 데이터베이스 테이블의 행과 동일합니다.

런타임 중에 테이블을 만드는 이유를 정말로 생각할 수 없습니다. 말하자면 데이터베이스 구조는 "돌이켜"설정되어야하며 런타임 중에는 기존 테이블의 행/레코드를 추가, 삭제 또는 업데이트하는 데이터베이스의 데이터 만 조작해야합니다. 런타임 중에 테이블을 만드는 것은 큰 일이 아닙니다.

+0

나는 당신의 요지를 얻지 만, 사용자가 외국어의 용어집과 번역본을 여러 곳에 작성하는 앱이라고 말한다. 용어집의 각 목록의 이름에는 물론 이름이라는 행이있을 수 있지만 용어와 번역으로 행의 나머지 부분을 만드는 것은 더욱 복잡합니다. 용어집의 수는 다를 수 있습니다. 런타임 중에 테이블을 만들지 않는 이유는 무엇입니까? 무슨 나쁜 일이 일어날 수 있니? – user820913

+0

귀하의 요구 사항을 완전히 이해하고 있는지 확신 할 수 없지만, 한쪽에 한 단어, 다른 쪽 다른 언어로 된 여러 단어의 번역이 필요하다고 가정하겠습니다. 이는 일대 다 관계가 포함 된 적절한 데이터베이스 설계로 수행 할 수 있으며 데이터베이스 설계 기술에 익숙하지 않은 경우 먼저 살펴 봐야합니다. 따라서 이름은 행이 아니며 열이됩니다. 그런 다음 기본적으로 일대 다 관계 인 해당 단어에 대해 여러 개의 번역이 포함 된 여러 행을 가질 수있는 다른 테이블을 만들 수 있습니다. –

+0

고마워요! 이것은 제가 찾고 있던 대답이었습니다. – user820913

0

나는 아마도 당신의 질문을 정확하게 이해하지 못한다. 그러나 그것은 나에게 보인다. 당신이 정말로하고 싶은 것은 데이터베이스에 테이블에 새로운 행을 만드는 것이다.

+0

아니요, 좋은 프로그래밍 실습에 대한 일반적인 질문은 구체적인 문제입니다. 질문을 먼저 게시했습니다.이 질문에 대한 의견이 3 번이라면 https://stackoverflow.com/questions/47004250/getting-list-of-table-names-from-database-in-android-application 저는 3입니다. 런타임 중에 사용자가 새 테이블을 만들 수 있도록 경고했습니다. 그는 아마 좋은 점을 가지고 있습니다, 저는 그 이유를 알아야합니다. – user820913