데이터베이스 이름 규칙: DATTIME 열
DATTIME 열에 대한 명명 규칙은 무엇입니까(나의 경우 MS SQL Server 사용).
행이 생성된 시간을 저장하는 열의 경우 CreatedDatetime 또는 LastModifiedDatetime이 적합합니다.
그러나 간단한 테이블의 경우 이벤트라고 하는 테이블의 경우 다음과 같은 열을 생성할 수 있습니다.
TABLE Event
====================================================
EventID, // Primary key
EventDatetime, // When the event is happening
EventEnabled // Is the event is on
또는 이 열 이름
TABLE Event
====================================================
ID, // Primary key
Datetime, // When the event is happening
Enabled // Is the event is on
두 가지 관례를 모두 사용하지 않을 경우:사용할 열 이름을 입력하십시오.
열을 적을으로열 DATTIME 다음과같지이다정으로 짓습니다.ACTION_WORD_on: created_on, completed_on, etc.
그ACTION_WORD는 열이 접미사(접미사)를 합니다._on는 열이시간을 것을 .는 열이 시간을 나타냄을 나타냅니다.
다른 접두사유형을 할 수 ._at,_UTC,when_
서술적으로 하라.일관성을 가지세요.
이벤트도 사용하지 않는데 이벤트 날짜 시간이라고 부르는 이유IDent 또는 이벤트 언발레드 바르샤르?열 이름에 데이터 유형을 포함하는 이유는 무엇입니까?(내 경험에 따르면, 만약 그들이 테이블의 데이터에 액세스한다면, 그들은 열 데이터 유형이 무엇인지를 더 잘 알 것입니다. 그렇지 않으면 그들은 무엇을 사용하는지 모르기 때문입니다.)
요즘 저는 다음과 같은 설명적인 열 이름을 선호합니다.
는 다음과 같습니다.
된 날짜
CreatedOn(시간 부분이 없는 경우)
으로 더 수 )은 다음과 같습니다.
"라벨"을 선택하여 해당 데이터가 필요한 모든 테이블에서 일관되게 사용하는 것도 좋은 일입니다.예를 들어, 모든 테이블에 "작성 날짜" 열이 있으면 행이 작성된 시점을 모든 테이블의 어떤 열이 알려주는지 항상 알 수 있기 때문입니다."하지만 모두 고유한 이름을 가지고 있어야 합니다."라는 주장에 연연하지 마십시오. 질문을 작성하는 경우 각 열에서 어떤 테이블을 끌어오는지 알아야 합니다.
--편집--
저는 방금 제가 과거에 했던 예외를 떠올렸습니다.DateTime(또는 SmallDateTime) 열에 시간 부분이 포함되지 않고 날짜만 포함되는 경우 "알림"으로 열 이름에 "BilledDate" 또는 "BilledOn" 대신 "BilledDate"와 같은 "Date"를 입력합니다.행이 추가된 시간을 추적할 때도 시간이 필요하므로 이는 적용되지 않습니다.
이름은 열에 있는 데이터의 비즈니스 의미를 전달해야 합니다."DateTime"은 데이터 유형일 뿐입니다.그 사건이 일어난 게 언제였습니까?언제 녹음되었습니까?언제 DB에 저장되었습니까?데이터가 마지막으로 수정된 날짜는 언제입니까?
열에 포함된 의미를 효율적으로 전달한다면 이름은 괜찮습니다."날짜 시간"이 올바르지 않습니다."EventDateTime"이 약간 더 좋습니다.테이블에 이벤트가 있는 경우 테이블의 모든 날짜 필드는 EventDateTime(이벤트와 관련된 일부 날짜 시간을 기록함)입니다.이벤트 테이블에 날짜/시간 열이 하나만 있는 경우에도 이벤트 날짜/시간은 이벤트가 발생한 시간임을 의미하므로 문제가 없을 수 있습니다.
값의 의미를 전달할 이름을 선택하거나 선택합니다.
편집된 질문을 고려할 때 제안된 이름은 다음과 같습니다.
발생 또는 발생 날짜 시간 또는 발생UTC, (또는 발생한 로컬) 또는 비즈니스 모델의 이벤트에 기간이 있는 경우 StartedUtc, BeginUtc 또는 InitiatedUtc 등이 해당됩니다.
두 번째 양식으로 열을 작성하는 것을 선호합니다. 사용 용도에 따라 Datetime보다 더 설명적인 이름을 원할 수도 있습니다.
편집: 이러한 상황에서 단일 필드에 하이브리드를 사용하여 '이벤트 날짜', '시작 날짜' 또는 이와 유사한 필드로 만들 수 있습니다.
저만 그런 것일 수도 있지만, 데이터 유형으로 열 이름을 지정하거나 필드 전체에 테이블 이름을 복제해서는 안 됩니다.
열 이름에 데이터 유형을 사용하는 것을 피하므로 첫 번째 옵션에 투표합니다.
행에 이벤트와 해당 이벤트가 발생했을 때의 세부 정보에 있는 속성(열)이 설명되므로 HappenesAt 열이라고 합니다.일반적으로 나는 단수 명사로 내 표의 이름을 짓고, 내 속성을 읽을 때 사용할 수 있는 문구로 이름을 붙이려고 노력합니다.
테이블 이름(키) 열 이름 열 값
그래서 나는 말할 수 있을 것입니다.
이벤트(131) 2009년 12월 21일 21:30에 발생합니다.
하지만 이것은 불가침의 규칙이 아닙니다.나는 여전히 누군가가 태어난 날짜를 WasBornOn 열이 아닌 BirthDate 열에 기록할 것입니다.사물에 이름을 붙일 때 자연어의 일반적인 사용법을 염두에 두어야 합니다.자연스러운 사용을 위해 노력하면 나머지는 따라올 것입니다.규칙을 맹목적으로 따르면 독자들은 이해를 위해 고군분투할 것입니다.
여기 좋은 답변이 많으니 중복하지 않겠습니다.하지만 칼럼에 예약 단어를 지정하지 않는다는 것을 기억하세요!!!
또한 옵션 1의 열 이름이 정말 마음에 듭니다.
저는 아마 "와 같은 것을 사용할 것입니다.WhenRaisedUtc".
언급URL : https://stackoverflow.com/questions/1379543/database-name-convention-datetime-column
'programing' 카테고리의 다른 글
| PowerShell이 실패하고 업데이트가 발생함 (0) | 2023.08.20 |
|---|---|
| 각도 설계 패턴: MVC, MVVM 또는 MV*? (0) | 2023.08.20 |
| macOS에서 Docker 데몬에 연결할 수 없음 (0) | 2023.08.20 |
| 시작-번역:이 호스트는 전사를 지원하지 않습니다. (0) | 2023.08.15 |
| 각도 2에서 비동기 검증기에 데바운스 시간을 추가하는 방법은 무엇입니까? (0) | 2023.08.15 |