일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 파이썬
- BOJ
- enumerate
- 자료구조
- itertools
- 딕셔너리
- 외래키
- 큰 수 나누기
- list comprehension
- FOREIGN KEY
- mysql
- 2557
- datetime
- ceil
- 세그먼트 트리
- python
- SUM()
- floor
- Codeforces
- timestamp
- 에라토스테네스의 체
- lower_case_table_names
- 리스트 컴프리헨션
- SUM
- Dictionary
- flask
- project euler
- convention
- 네이밍
- 소수
- Today
- Total
목록mysql (5)
늒네 기록
[mysql] 테이블 네이밍 컨벤션 글에서 '테이블 이름 및 칼럼 이름 파스칼 케이스 사용'을 하겠다고 했었는데, MySQL Workbench로 로컬 인스턴스에 연결해서 'Project'라는 이름의 테이블을 생성하려고 했더니 다음과 같은 에러가 발생했다. 설정이 1로 되어있어서 Project 테이블 이름을 project 테이블로 바꿔서 생성하겠다고 한다. 파스칼 케이스를 사용하고 싶다면 해당 설정을 변경하면 그만이겠지만, 이런 설정이 존재하는 데에는 분명 이유가 있을 것이다. 해당 키워드를 가지고 검색을 하다보면, mysql 레퍼런스 매뉴얼 페이지가 나온다. In MySQL, databases correspond to directories within the data directory. Each tabl..
이전에 외래키를 설정하지 않고 테이블들을 관리하던 프로젝트에 참여했던 적이 있었다. 당시에는 별 생각이 없었는데, 다시 보니 이렇게 해서 얻는 이점이 있었을까? Insert 과정에서 빡빡하게 관리를 해주면, 그리고 특정 행을 delete할 일이 없다면 크게 문제될 것은 없을것 같은데, 실제로 다른 사람들도 프로젝트를 진행할때 외래키를 쓰지 않기도 하는지 궁금했다. 검색을 해보면서 흥미로운 링크를 둘 찾았는데, 하나는 여기. 질문자의 시니어도 프로젝트를 돌릴 때 FK를 사용하지 않았는데, 그 이유는 '급하게 INSERT, UPDATE, DELETE를 해야할 때 제약이 걸려있으면 이로 인해서 시간이 잡아먹히는 것도 코스트기 때문'. 이라고 했단다. 아래 달린 답변에도 읽어볼만한 내용이 있었는데, 'INSER..
특정 행을 입력할때 생성 시간을 자동으로 기록해두고 싶으면 데이터 타입에 TIMESTAMP를 넣고 Defalut/Expression에 CURRENT_TIMESTAMP()를 쓰면 된다. 혹은 CURRENT_TIMESTAMP, NOW() 모두 같은 값. 이렇게 하면 행을 생성할때 생성 시간이 자동으로 같이 입력된다. 이 링크 에 따르면 CREATE TABLE시 '{칼럼이름} DATETIME DEFAULT CURRENT_TIMESTAMP' 식으로 디폴트 값을 넣어줄 수 있고, ALTER TABLE시 'ALTER COLUMN {칼럼이름} SET DEFAULT CURRENT_TIMESTAMP'식으로 디폴트값을 수정해줄 수 있다. 위 예시와 같이 TIMESTAMP타입 대신 DATETIME을 사용하는 것도 가능하다...
관계 테이블의 이름을 짓는 것에 대해서도 재미있는 글들이 몇 있었다. 예를 들어, 이 링크 에서는 이런 테이블들을 다음의 이름으로 부른다고 설명해주고 있다. Association table Bridge table Cross-reference table Crosswalk Intermediary table Intersection table Join table Junction table Link table Linking table Many-to-many resolver Map table Mapping table Pivot Table Pairing table Relationship table Transition table 그래서 association table을 검색어로 이런 테이블들 네이밍을 어떻게 하는지 검..
테이블 이름을 짓는 것에 대한 논의가 수없이 많다는 걸 검색해보면서 알았다. 예를 들어, 이 링크. 대표적인 이슈들은 다음과 같다. 1. 테이블, 칼럼 이름을 복수형(plural)으로 할 것인가, 단수형(singular)으로 할 것인가? 2. 테이블 이름 대문자? 파스칼 케이스(PascalCase)? 카멜 케이스(camelCase)? 스네이크 케이스(snake_case)? 3. 줄임말 사용? (위에 걸어둔 링크에 나온 예시처럼, Cus_AddRef. What on earth is that? Custodial Addressee Reference? Customer Additional Refund? Custom Address Referral?) 몇몇 자료들을 보면서 내린 결론은, 일단 본인 편한 컨벤션 하나 ..