摘要:使用作為主鍵的目的降低類型這種自增線性特征作為隨機生成的字符串讓更離散增強系統的反爬蟲能力至少避免通過的線性增加來爬取內容這種最簡單的爬取方式使用主鍵的是那種方式各有優缺點可按實際需求自行權衡在應用程序中生成并插入到數據庫通過使用擴展自動生
使用UUID作為主鍵的目的
降低Serial類型這種自增ID線性特征, UUID作為隨機生成的字符串, 讓ID更離散, 增強系統的反爬蟲能力(至少避免通過ID的線性增加來爬取內容這種最簡單的爬取方式)
使用主鍵的是那種方式, 各有優缺點, 可按實際需求自行權衡
在應用程序中生成UUID, 并插入到數據庫
通過使用pgcrypto擴展自動生成
數據庫方面這里只說明如何使用pgcrypto擴展自動生成UUID Type主鍵.
通過調用 pgcrypto 擴展模塊中的 gen_random_uuid() 函數可以生成UUID. 要使用該函數, 首先需要創建擴展:
CREATE EXTENSION pgcrypto;
生成UUID
SELECT gen_random_uuid();
作為主鍵使用
CREATE SCHEMA IF NOT EXISTS developerworks; CREATE TABLE developerworks.contacts ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), name TEXT, email TEXT );
插入測試數據
INSERT INTO developerworks.contacts (name,email) VALUES ("Dr Nic Williams","drnic"), ("Brian Mattal","brian"), ("Wayne E. Seguin","wayneeseguin"), ("Long Nguyen","long"), ("Bill Chapman","bill"), ("Chris Weibel","chris"), ("Jeremey Budnack","jrbudnack"), ("Ruben Koster","rkoster"), ("Jamie Van Dyke","jamie"), ("Quintessence Anx","qanx"), ("McGowan","mcg"), ("高,秀嬌 (XJ)","xj"), ("Geoff Franks","geoff"), ("Van Nguyen","vnguyen"), ("John Longanecker","jlonganecker") ;
查詢結果
SELECT * FROM developerworks.contacts;遷移腳本定義
defmodule Jianpan.Repo.Migrations.CreatePrefixNodes do use Ecto.Migration def change do create table(:prefix_nodes, primary_key: false) do add :id, :uuid, primary_key: true, default: fragment("gen_random_uuid()") add :order, :integer add :name, :string add :is_deleted, :boolean, default: false, null: false add :parent_id, references(:prefix_nodes, type: :uuid, on_delete: :delete_all) end create index(:prefix_nodes, [:parent_id]) end end參考資料
http://websymphony.net/blog/2...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/38968.html
摘要:及其以上版本可以存儲類似這樣的非結構化數據作為一個的數據封裝器提供了這些非結構話的數據到原生數據類型的序列化和反序列化嵌入的記錄具有所有常規模型所具有的東西比如結構化的字段生命周期回調變更集下面研究如何把結構嵌入到模型當中使用嵌入單個結構可 Postgres 9.4 及其以上版本可以存儲類似 arrays, json, jsonb 這樣的非結構化數據. Ecto 作為一個 Elixir...
摘要:本文以用一個在數據庫中保存圖片信息為例展示如何向中插入二進制數據首先我們要知道中唯一一種二進制數據的類型為表示字節數組或字節序列對應于和中的下面是一個示例遷移腳本這里也可以為實際上在執行數據庫中字段的類型就是當然除了圖片文件以外你還 本文以用一個在數據庫中保存圖片信息為例, 展示如何向 Postgresql 中插入二進制數據. showImg(https://segmentfault....
摘要:簡介數據格式空間數據的文本標識空間數據的二進制標識基于對象表示法的地理空間信息數據交換格式的庫提供了上述三種格式的相互轉換函數配置添加依賴配置擴展創建刪除擴展的移植腳本腳本內容執行移植插入數據軌跡點粵獲取經緯度粵查詢聯系如何查詢字段例 簡介 數據格式 Abbr Fullname Description WKT Well Known Text 空間數據的文本標識 WKB ...
摘要:要解決的問題數據庫中存儲的行數超過了類型所能容納的數量因此需要采用類型的整數作為主鍵的取值范圍為到的取值范圍為到完整的字段的數據類型可以參考這里遷移腳本要點的參數要設置為通過宏指定主鍵列類型為模型的聲明要點主鍵要聲明為類型完 要解決的問題 數據庫中存儲的行數超過了 serial 類型所能容納的數量, 因此需要采用 bigserial 類型的整數作為主鍵serial 的取值范圍為: 1...
閱讀 2548·2023-04-25 19:47
閱讀 3388·2019-08-29 17:18
閱讀 858·2019-08-29 15:26
閱讀 3364·2019-08-29 14:17
閱讀 1127·2019-08-26 13:49
閱讀 3342·2019-08-26 13:22
閱讀 3027·2019-08-26 10:44
閱讀 2698·2019-08-23 16:51